データベース中級
JOIN
じょいん
一言で言うと
複数のテーブルを関連づけて、1つの結果にまとめる操作。テーブル同士を「つなぎ合わせる」こと。
もう少し詳しく
一言で言うと
複数のテーブルを関連づけて、1つの結果にまとめる操作。テーブル同士を「つなぎ合わせる」こと。
もう少し詳しく
JOINは、別々のテーブルに分かれているデータを、共通のキー(ID番号など)を使って結合する操作です。
書類ファイルに例えると、「社員名簿」ファイルと「部署一覧」ファイルがあるとき、社員番号や部署コードをキーにして「どの社員がどの部署にいるか」を一覧にまとめるイメージです。
データベースでは、データの重複を避けるためにテーブルを分けて管理します(正規化)。たとえば「注文テーブル」には商品IDだけを保存し、商品の詳細情報は「商品テーブル」に保存します。これらを結合して「注文一覧に商品名も表示する」のがJOINの役割です。
実務でどう使うか
コードで見てみよう
-- 注文テーブルと商品テーブルをJOINする
SELECT
orders.id AS order_id,
customers.name AS customer_name,
products.name AS product_name,
orders.quantity,
orders.order_date
FROM orders
JOIN customers ON orders.customer_id = customers.id
JOIN products ON orders.product_id = products.id
WHERE orders.order_date >= '2024-01-01'
ORDER BY orders.order_date DESC;-- → 注文ID | 顧客名 | 商品名 | 数量 | 注文日
-- が一覧で表示される