SQLの基礎知識V2-JOIN接続

SQL列

SQLデータベースの基本的な知識の要約

SQLデータベースの高度な知識の要約


JOIN接続の役割JOIN接続は、これらのテーブル間の共通フィールドに基づいて、2つ以上のテーブルの行を結合するために使用されます。

最も一般的なタイプのJOIN:INNER JOIN(単純なJOIN)。INNER JOINは、複数のテーブルからJOIN条件を満たすすべての行を返します。

サンプルデータベース

「注文」テーブルから選択されたデータを見てみましょう。

SQLの基礎知識V2-JOIN接続

次に、「顧客」テーブルから選択したデータを確認します。

SQLの基礎知識V2-JOIN接続

「注文」テーブルの「顧客ID」列は、「顧客」テーブルの顧客IDを指していることに注意してください。上記の2つのテーブルは、「顧客ID」列を介して接続されています。

JOINインスタンス
各注文IDを誰が注文したかと特定の注文時間を知りたい。次のSQLステートメント(INNER JOINを含む)を実行します。

SELECT o.订单ID, c.姓名, o.订单日期
FROM Orders o
INNER JOIN Customers c
ON o.客户ID=c.客户ID;

操作の結果は次のとおりです。

SQLの基礎知識V2-JOIN接続

さまざまなJOIN
例の説明を続ける前に、まず、使用できるさまざまなSQLJOINタイプをリストします。

  • 内部結合:テーブルに少なくとも1つの一致がある場合は、行を返します

  • LEFT JOIN:右側のテーブルに一致するものがない場合でも、すべての行が左側のテーブルから返されます

  • 右結合:左のテーブルに一致するものがない場合でも、すべての行が右のテーブルから返されます

  • FULL JOIN:テーブルの1つに一致するものがある限り、行が返されます

内部結合

内部リンクINNERJOINキーワードは、2つのテーブルで値が一致するレコードを選択します。

SQL INNERJOIN语法SELECTcolumn_name
(s)FROM table1
INNER JOIN table2 ON
table1.column_name = table2.column_name;

注:INNER JOINとJOINは同じですが、上記の例はINNERJOINです。

SQLの基礎知識V2-JOIN接続

LEFT JOINSQL
左リンクLEFTJOINキーワードは、右側のテーブル(表2)に一致するものがない場合でも、左側のテーブル(表1)のすべての行を返します。正しいテーブルに一致するものがない場合、結果はNULLになります。

SQL LEFTJOIN语法SELECTcolumn_name
(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

または:

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;

注:一部のデータベースでは、LEFTJOINはLEFTOUTERJOINと呼ばれます。

SQLの基礎知識V2-JOIN接続

LEFTJOINの例

Customersテーブルのすべてのユーザーが注文したかどうかを確認したいので、次のクエリ言語を使用できます。


SELECT c.姓名,o.订单ID,  o.订单日期
FROM Customers c
LEFT JOIN Orders o
ON o.客户ID=c.客户ID;

結果:
SQLの基礎知識V2-JOIN接続

Liu Er、Li Si、およびZhao Qiは、Ordersテーブルに存在せず、情報と一致しなかったため、対応する注文IDと注文日がないことがわかりました。ただし、左接続であるため、上図のtable1に対応するメインテーブルCustomersのすべての情報が表示されます。

右結合

SQL右リンクRIGHTJOINキーワードは、左側のテーブル(table1)に一致するものがない場合でも、右側のテーブル(table2)のすべての行を返します。左側のテーブルが一致しない場合、結果はNULLになります。

SQL RIGHTJOIN语法SELECTcolumn_name
(s)FROM table1
RIGHT JOIN table2 ON
table1.column_name = table2.column_name;

注:一部のデータベースでは、RIGHTJOINはRIGHTOUTERJOINと呼ばれます。

SQLの基礎知識V2-JOIN接続

右接続と左接続のメインテーブルは正反対で、表2のデータは完全に表示され、表1に一致するものがない場合は表示されません。

FULL OUTER JOIN
左(表1)または右(表2)のテーブルレコードが一致すると、FULL OUTERJOINキーワードはすべてのレコードを返します。
注:FULL OUTER JOINは、非常に大きな結果セットを返す場合があります。

SQL FULL OUTERJOIN语法SELECTcolumn_name
(s)FROM table1
FULL OUTER JOIN table2 ON
table1.column_name = table2.column_name;

SQLの基礎知識V2-JOIN接続

完全接続とは、一致するかどうかに関係なく、table1とtable2の内容を完全に表示することです。

注釈

JOINはSQLで重要な位置を占めています。JOINを使用すると、2つ以上のテーブルを一致する関係に関連付けて、必要なデータを取得できます。関連付けの方法もより柔軟です。一般的に使用されるのはINNERJOINです。必ず習得してください。

おすすめ

転載: blog.51cto.com/15057820/2656354