SQL ジョイン
SQL ジョイン
JOIN 句は、関連する列を基に、2 つ以上のテーブルから行を結合するために使用されます。
“Orders” テーブルから選択された一部を見てみましょう:
| OrderID | CustomerID | OrderDate | 
|---|---|---|
| 10308 | 2 | 1996-09-18 | 
| 10309 | 37 | 1996-09-19 | 
| 10310 | 77 | 1996-09-20 | 
次に、”Customers” テーブルから選択された一部を見てみましょう:
| CustomerID | CustomerName | ContactName | Country | 
|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Germany | 
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico | 
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mexico | 
“Orders” テーブルの “CustomerID” 列が “Customers” テーブルの “CustomerID” 列を参照していることに注意してください。上記の 2 つのテーブルの関係性は “CustomerID” 列です。
次に、以下の SQL 文(INNER JOIN を含む)を作成できます。この SQL 文は、両方のテーブルで一致する値を持つレコードを選択します:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;この SQL 文は次のような結果を生成します:
| OrderID | CustomerName | OrderDate | 
|---|---|---|
| 10308 | Ana Trujillo Emparedados y helados | 9/18/1996 | 
| 10365 | Antonio Moreno Taquería | 11/27/1996 | 
| 10383 | Around the Horn | 12/16/1996 | 
| 10355 | Around the Horn | 11/15/1996 | 
| 10278 | Berglunds snabbköp | 8/12/1996 | 
異なる種類の SQL JOIN
以下は SQL における異なる種類の JOIN の説明です:
- (INNER) JOIN: 両方のテーブルで一致するレコードを返します。
- LEFT (OUTER) JOIN: 左側のテーブルのすべてのレコードと、右側のテーブルから一致するレコードを返します。
- RIGHT (OUTER) JOIN: 右側のテーブルのすべてのレコードと、左側のテーブルから一致するレコードを返します。
- FULL (OUTER) JOIN: 左右のどちらかのテーブルで一致するレコードすべてを返します。