MySQLが参加します
MySQL結合テーブル
JOIN
句は、2つ以上のテーブル間の関連する列に基づいて、それらのテーブルの行を結合するために使用されます。
「注文」テーブルからの選択を見てみましょう。
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
次に、「顧客」テーブルからの選択を見てください。
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」列です。
INNER JOIN
次に、両方のテーブルで値が一致するレコードを選択する次のSQLステートメント(を含む)を作成できます。
例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
そしてそれはこのようなものを生み出すでしょう:
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 |
MySQLでサポートされている結合の種類
INNER JOIN
:両方のテーブルで値が一致するレコードを返しますLEFT JOIN
:左側のテーブルからすべてのレコードを返し、右側のテーブルから一致したレコードを返しますRIGHT JOIN
:右側のテーブルからすべてのレコードを返し、左側のテーブルから一致したレコードを返しますCROSS JOIN
:両方のテーブルからすべてのレコードを返します