SQL 結合
SQL結合
JOIN句は、2つ以上のテーブルから、関連するカラムに基づいて行を結合するために使用されます。
"Orders"テーブルからの選択を見てみましょう。
|
オーダーID |
顧客ID |
注文日 |
|---|---|---|
| 10308 | 2 | 1996-09-18 |
| 10309 | 37 | 1996-09-19 |
| 10310 | 77 | 1996-09-20 |
次に、「Customers」テーブルからの選択を見てください。
|
顧客ID |
顧客名 |
連絡先 |
国 |
|---|---|---|---|
| 1 | アルフレッド・フードボックス | マリア・アンダース | ドイツ |
| 2 | アナ・トルヒーヨ サンドイッチとアイスクリーム | アナ・トルヒーヨ | メキシコ |
| 3 | アントニオ・モレノ・タケリア | アンソニー・モレノ | メキシコ |
「Orders」テーブルの「CustomerID」列は、「Customers」テーブルの「CustomerID」を参照していることに注意してください。上記の2つのテーブルの関係は、"CustomerID"列です。
次に、次のSQLステートメントを作成できます (これには、INNER JOIN)、両方のテーブルで一致する値を持つレコードを選択します。
例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
次のようなものが生成されます。
|
オーダーID |
顧客名 |
注文日 |
|---|---|---|
| 10308 | アナ・トルヒーヨ サンドイッチとアイスクリーム | 1996/9/18 |
| 10365 | アントニオ・モレノ・タケリア | 1996/11/27 |
| 10383 | アラウンド・ザ・ホーン | 1996/12/16 |
| 10355 | アラウンド・ザ・ホーン | 1996/11/15 |
| 10278 | バーグルンドのスーパーマーケット | 1996/8/12 |
さまざまなタイプのSQL JOIN
SQLのJOINのさまざまなタイプを次に示します。
(INNER) JOIN: 両方のテーブルで値が一致するレコードを返します。LEFT (OUTER) JOIN: 左のテーブルからすべてのレコードを、右のテーブルからマッチしたレコードを返します。RIGHT (OUTER) JOIN: 右のテーブルからすべてのレコードを、左のテーブルからマッチしたレコードを返します。FULL (OUTER) JOIN: 左テーブルまたは右テーブルのいずれかに一致するレコードがある場合、すべてのレコードを返します。



