logo

SQL 左外部結合と左結合

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 などのさまざまなタイプの結合をサポートしており、それぞれが複数のテーブルのデータを結合する際に異なる目的を果たします。