MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

2つのテーブルを比較し、MySQL LEFTOUTERJOINを使用して欠落しているIDを返します


2つのテーブルを比較して、欠落しているIDを返すには、MySQL LEFTOUTERJOINを使用する必要があります。

サンプルフィールドを含むテーブルを作成してから、レコードを挿入します。最初のテーブルを作成するためのクエリ-

First_Table
mysql> create table First_Table
   -> (
   -> Id int
   -> );
Query OK, 0 rows affected (0.88 sec)

次に、insertコマンドを使用してテーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into First_Table values(1);
Query OK, 1 row affected (0.68 sec)
mysql> insert into First_Table values(2);
Query OK, 1 row affected (0.29 sec)
mysql> insert into First_Table values(3);
Query OK, 1 row affected (0.20 sec)
mysql> insert into First_Table values(4);
Query OK, 1 row affected (0.20 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from First_Table;

以下は出力です-

+------+
| Id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

これが2番目のテーブルを作成するためのクエリです-

Second_Table

mysql> create table Second_Table
   -> (
   -> Id int
   -> );
Query OK, 0 rows affected (0.60 sec)

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-

mysql> insert into Second_Table values(2);
Query OK, 1 row affected (0.19 sec)
mysql> insert into Second_Table values(4);
Query OK, 1 row affected (0.20 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from Second_Table;

以下は出力です-

+------+
| Id   |
+------+
|    2 |
|    4 |
+------+
2 rows in set (0.00 sec)

LEFT OUTER JOIN-

を使用して、2つのテーブルを比較し、欠落しているIDを返すクエリは次のとおりです。
mysql> SELECT First_Table.Id FROM First_Table
   -> LEFT OUTER JOIN Second_Table ON First_Table.Id = Second_Table.Id
   -> WHERE Second_Table.Id IS NULL;

以下は出力です-

+------+
| Id   |
+------+
| 1    |
| 3    |
+------+
2 rows in set (0.00 sec)

  1. 左、右、完全な外部結合の違い

    この投稿では、左外部結合、右外部結合、および完全外部結合の違いを理解します。 左アウタージョイン 左側のテーブルからすべての行をフェッチします。 これは、「内部結合+左側のテーブルの一致しないすべての行」と同じです。 右側のテーブルで一致しないデータは失われます。 例: SELECT [column_1, column_2, ….] FROM table_1 LEFT OUTER JOIN table_2 ON table_1.matching_column = table_2.matching_column 右外部結合 右側のテーブルのすべての行をフェッチします。 こ

  2. PythonでMySQLを使用して、2つのテーブルで左結合を実行するにはどうすればよいですか?

    SQLの2つのテーブルは、それらの間の共通の列に基づいて、または指定された条件に基づいて結合できます。 2つのSQLテーブルを結合するために使用できるJOINにはさまざまなタイプがあります。 ここでは、2つのテーブルでの左結合について説明します。テーブルは、LEFT結合を使用して結合できます。 LEFT JOINでは、最初のテーブルまたは左側のテーブルのすべてのレコードが常に結果に含まれます。右側のテーブルから、一致するレコードが左側のテーブルのレコードに結合されます。左側のテーブルの行に一致するレコードが見つからない場合、Noneがそのレコードに結合されます。 テーブルは、いくつかの条件