SQL では、LEFT JOIN と LEFT OUTER JOIN の両方が、関連する列に基づいて 2 つ以上のテーブルのデータを結合するために使用されますが、これらは本質的に同じ操作であり、実質的な違いはありません。キーワード OUTER は、MySQL、PostgreSQL、SQL Server などの一般的なデータベース システムを含む、ほとんどのデータベース システムではオプションです。

左結合または左外部結合
左結合
あ SQL 2 つのテーブルを結合する操作。左側のテーブルのすべての行と、右側のテーブルの一致する行を表示します。右側のテーブルに一致するものがない場合は、次のように表示されます。 ヌル 価値観。
構文
SELECT * FROM テーブル 1
JavaスイッチケースLEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
左外部結合
概念的には LEFT JOIN と同じ別の SQL 操作。また、テーブルを結合して、左側のテーブルのすべての行と右側のテーブルの一致する行を表示します。右側のテーブルに一致するものがない場合は、NULL 値が表示されます。
構文
SELECT * FROM テーブル 1
LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;
SQL における LEFT JOIN と LEFT OUTER JOIN は本質的に同じものです。どちらも 2 つのテーブルのデータを結合し、左側のテーブルのすべての行と右側のテーブルの一致する行を表示します。右側のテーブルに一致するものがない場合は、NULL 値が表示されます。唯一の違いは用語です。LEFT JOIN は、次のような一部のデータベースで使用されます。 MySQL 一方、LEFT OUTER JOIN は SQL Server などの他の言語で使用されます。より深い方法では、Java で使用される System.out.print() と同時に、Python で使用される print ですが、どちらも同じ出力を反映します。したがって、データベース システムがどちらの用語を優先するかが問題ですが、結果は同じです。
例に入る前に、左外部結合と左結合を実行するために必要なデータを作成しましょう。
ステップ 1: データベースを作成する
create database geeksforgeeks; use geeksforgeeks;>
ステップ 2: athelete という名前のテーブルを作成する
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
ステップ 3: テーブルアスリートに値を挿入する
INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>
ステップ 4: Points という名前のテーブルを作成する
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
ステップ 5: テーブルポイントに値を挿入する
INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>
これで、テーブルアスリートと結合操作用のポイントが正常に作成されました。
例:
左外部結合を使用すると、クエリが実行されます。
クエリ
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
出力
ID | 名前 | アスリートNO | ID Javaで配列をソートする方法 | スコア | アスリートID |
---|---|---|---|---|---|
1 | アビシェイク | 27 | 1 | 270 | 1 |
2 | ニヤス | 27 | 2 | 297 | 2 |
3 | ジョセフ | 29 | 3 | 210 | 3 |
4 | ファン | 24 | 4 | 180 | 4 |
例:
左結合を使用すると、クエリが実行されます。
クエリ
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
出力
ID | 名前 | アスリートNO jframe | ID | スコア | アスリートID |
---|---|---|---|---|---|
1 | アビシェイク | 27 | 1 | 270 | 1 |
2 | ニヤス | 27 | 2 CSSを使って下線を引く | 297 | 2 |
3 | ジョセフ | 29 | 3 | 210 | 3 |
4 | ファン | 24 | 4 | 180 | 4 |
結論
SQL では、LEFT JOIN と LEFT OUTER JOIN は本質的に同じ操作であり、用語が異なるだけです。どちらの操作も 2 つのテーブルのデータを結合し、左側のテーブルのすべての行と右側のテーブルの一致する行を表示し、一致しない行については NULL 値を表示します。データベース システムで使用される用語に関係なく、結果は同じです。
左結合と左外部結合に関する FAQ
Q.1: LEFT JOIN と LEFT OUTER JOIN の間にパフォーマンスの違いはありますか?
答え:
いいえ、性能に違いはありません。これらの用語は交換可能であり、データベース オプティマイザーは同じ方法で処理します。
Q.2: LEFT JOIN または LEFT OUTER JOIN を 3 つ以上のテーブルで使用できますか?
答え:
はい、構文を拡張して各テーブルの結合条件を指定することで、これらの結合操作を複数のテーブルで使用できます。
抽象クラス
Q.3: すべてのデータベース システムは LEFT JOIN と LEFT OUTER JOIN の両方をサポートしていますか?
答え:
MySQL、PostgreSQL、SQL Server など、最も広く使用されているデータベース システムは、LEFT JOIN と LEFT OUTER JOIN の両方をサポートしています。ただし、互換性については、特定のデータベースのドキュメントを確認することが重要です。
Q.4: 結合条件を指定せずに LEFT JOIN または LEFT OUTER JOIN を使用するとどうなりますか?
答え:
結合条件を指定せずにこれらの結合演算を使用すると、左側のテーブルの各行が右側のテーブルの各行と結合されるデカルト積が生成され、結果セットが大きく非効率になる可能性があります。
Q.5: 他のタイプの SQL 結合はありますか?
答え:
はい、SQL は INNER JOIN、RIGHT JOIN、FULL OUTER JOIN、CROSS JOIN などのさまざまなタイプの結合をサポートしており、それぞれが複数のテーブルのデータを結合する際に異なる目的を果たします。