SQLLearn
← レッスン一覧/中級

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;
INSERT・UPDATE・DELETEGROUP BY・HAVINGで集計する

SQL エディタ

練習問題

問題 1

employeesとdepartmentsをJOINして、従業員名と部署名を取得してください