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

2つのテーブルでMySQLLEFTJOINを実行しますか?


最初に2つのテーブルを作成し、それらを外部キー制約で結合しましょう。最初のテーブルを作成するためのクエリは次のとおりです-

mysql> create table ParentTable
   -> (
   -> UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> EmployeeName varchar(10)
   -> );
Query OK, 0 rows affected (0.56 sec)

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

mysql> insert into ParentTable(EmployeeName) values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into ParentTable(EmployeeName) values('Carol');
Query OK, 1 row affected (0.32 sec)
mysql> insert into ParentTable(EmployeeName) values('Sam');
Query OK, 1 row affected (0.18 sec)
mysql> insert into ParentTable(EmployeeName) values('Bob');
Query OK, 1 row affected (0.19 sec)

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

mysql> select *from ParentTable;

以下は出力です-

+----------+--------------+
| UniqueId | EmployeeName |
+----------+--------------+
|        1 | John         |
|        2 | Carol        |
|        3 | Sam          |
|        4 | Bob          |
+----------+--------------+
4 rows in set (0.00 sec)

外部キー制約を使用して2番目のテーブルを作成するためのクエリは、次のとおりです-

mysql> create table ChildTable
   -> (
   -> UniqueId int NOT NULL PRIMARY KEY,
   -> EmployeeAddress varchar(100),
   -> CONSTRAINT fk_uniqueId FOREIGN KEY(UniqueId) references ParentTable(UniqueId)
   -> );
Query OK, 0 rows affected (0.54 sec)

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

mysql> insert into ChildTable values(1,'15 West Shady Lane Starkville, MS 39759');
Query OK, 1 row affected (0.19 sec)
mysql> insert into ChildTable values(2,'72 West Rock Creek St. Oxford, MS 38655');
Query OK, 1 row affected (0.18 sec)
mysql> insert into ChildTable(UniqueId) values(3);
Query OK, 1 row affected (0.41 sec)
mysql> insert into ChildTable values(4,'119 North Sierra St. Marysville, OH 43040');
Query OK, 1 row affected (0.16 sec)

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

mysql> select *from ChildTable;

以下は出力です-

+----------+-------------------------------------------+
| UniqueId | EmployeeAddress                           |
+----------+-------------------------------------------+
|        1 | 15 West Shady Lane Starkville, MS 39759   |
|        2 | 72 West Rock Creek St. Oxford, MS 38655   |
|        3 | NULL                                      |
|        4 | 119 North Sierra St. Marysville, OH 43040 |
+----------+-------------------------------------------+
4 rows in set (0.00 sec)

次に、左結合を使用してテーブルを結合しましょう。クエリは次のとおりです-

mysql> select
ParentTable.UniqueId,ParentTable.EmployeeName,ChildTable.EmployeeAddress from ParentTable left join
   -> ChildTable on ParentTable.UniqueId=ChildTable.UniqueId;

以下は出力です-

+----------+--------------+-------------------------------------------+
| UniqueId | EmployeeName | EmployeeAddress                           |
+----------+--------------+-------------------------------------------+
|        1 | John         | 15 West Shady Lane Starkville, MS 39759   |
|        2 | Carol        | 72 West Rock Creek St. Oxford, MS 38655   |
|        3 | Sam          | NULL                                      |
|        4 | Bob          | 119 North Sierra St. Marysville, OH 43040 |
+----------+--------------+-------------------------------------------+
4 rows in set (0.00 sec)

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

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

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

    SQLの2つのテーブルは、それらの間の共通の列に基づいて、または特定の条件に基づいて結合できます。 2つのSQLテーブルを結合するために使用できるJOINにはさまざまなタイプがあります。 ここでは、2つのテーブルの内部結合について説明します。 JOINとINNERJOINはどちらも同じように機能します。 INNER JOINは、あるテーブルの各行を他のテーブルのすべての行と照合し、共通の列があるか、指定された条件を満たす両方のテーブルの行を結合できるようにします。 2つのテーブル間で結合を適用する場合、テーブルが結合される条件を指定する必要があります。 構文 SELECT column1