JOINでテーブルを結合する
JOINとは?
複数のテーブルを関連するカラムで結合してデータを取得します。
INNER JOIN(内部結合)
両方のテーブルに一致するデータのみを取得します。
SELECT e.name, d.name AS department
FROM employees e
INNER JOIN departments d ON e.department_id = d.id;
LEFT JOIN(左外部結合)
左テーブルの全データ + 右テーブルの一致データを取得。一致しない場合はNULL。
SELECT e.name, d.name AS department
FROM employees e
LEFT JOIN departments d ON e.department_id = d.id;
テーブルエイリアス(別名)
テーブル名が長い場合、短い別名をつけると便利です。
-- e が employees、d が departments の別名
SELECT e.name, e.salary, d.name AS dept
FROM employees e
JOIN departments d ON e.department_id = d.id
ORDER BY e.salary DESC;
3テーブルのJOIN
SELECT o.id, p.name, o.quantity, o.customer_name
FROM orders o
JOIN products p ON o.product_id = p.id
ORDER BY o.order_date;
SQL エディタ
練習問題
問題 1
employeesとdepartmentsをJOINして、従業員名と部署名を取得してください