MySQL 速習チュートリアル

MySQL JOIN 句

1. MySQL JOIN 句の概要

JOIN 句は、2つ以上のテーブル間に存在する関連するカラム(共通のキー)に基づいて、それらのテーブルから行を結合するために使用されます。

MySQL で利用できる主な JOIN の種類は以下の通りです:

  • INNER JOIN: 両方のテーブルに一致する値がある行のみを返します。
  • LEFT JOIN: 左側のテーブルのすべての行と、右側のテーブルで一致する行を返します。
  • RIGHT JOIN: 右側のテーブルのすべての行と、左側のテーブルで一致する行を返します。
  • CROSS JOIN: 2つ以上のテーブルのデカルト積(すべての組み合わせ)を返します。

2. テーブル間のリレーションシップの確認

まず、「Orders(注文)」テーブルの 1 つのレコードを見てみましょう。

OrderIDCustomerIDOrderDate
1030821996-09-18

次に、「Customers(顧客)」テーブルの 1 つのレコードを確認します。

CustomerIDCustomerNameContactNameCountry
2Ana Trujillo Emparedados y heladosAna TrujilloMexico

ここで、「Orders」テーブルの CustomerID カラムは、「Customers」テーブルの CustomerID を参照していることがわかります。つまり、これら 2 つのテーブル間のリレーションシップ(関係性)は CustomerID カラムによって構築されています。

3. JOIN の使用例 (INNER JOIN)

このリレーションシップを利用して、両方のテーブルで一致する値を持つレコードを選択する SQL 文(INNER JOIN を含む)を作成できます。

-- 注文情報に顧客名を紐付けて取得するクエリ
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

このクエリを実行すると、次のような結果が得られます。

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10383Around the Horn1996-11-15
10355Around the Horn1996-12-16
10278Berglunds snabbköp1996-12-16