JOINでテーブルを結合する
問題 1
ordersとusersをJOINして、注文ID・ユーザー名・注文日・ステータスを取得してください
📖 解説参考資料
JOINとは?
複数のテーブルを関連するカラムで結合してデータを取得します。
INNER JOIN(内部結合)
両方のテーブルに一致するデータのみを取得します。
SELECT o.id, u.name, o.order_date, o.status
FROM orders o
INNER JOIN users u ON o.user_id = u.id;
LEFT JOIN(左外部結合)
左テーブルの全データ + 右テーブルの一致データを取得。一致しない場合はNULL。
SELECT u.name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
テーブルエイリアス(別名)
テーブル名が長い場合、短い別名をつけると便利です。
-- o が orders、u が users の別名
SELECT o.id, u.name, o.status
FROM orders o
JOIN users u ON o.user_id = u.id
ORDER BY o.order_date;
order_products を使った3テーブルのJOIN
SELECT u.name, p.name AS product, op.quantity
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN order_products op ON o.id = op.order_id
JOIN products p ON op.product_id = p.id;