内部結合
JOIN/INNER JOIN
両方のテーブルにあるデータのみを取り出す。
order_id | user_id | product |
---|---|---|
1 | 1 | Laptop |
2 | 2 | Smartphone |
3 | 1 | Headphones |
4 | NULL | Monitor |
5 | 3 | Tablet |
SELECT
users.username,
orders.product
FROM
users
INNER JOIN
orders
ON
users.user_id = orders.user_id;
外部結合
LEFT JOIN/RIGHT JOIN/OUTER JOIN
どちらかのテーブルにデータがあれば、取り出す
order_id | user_id | product |
---|---|---|
1 | 1 | Laptop |
2 | 2 | Smartphone |
3 | 1 | Headphones |
4 | NULL | Monitor |
5 | 3 | Tablet |
SELECT
users.username,
orders.product
FROM
users
LEFT JOIN
orders
ON
users.user_id = orders.user_id;
まとめ
NULLを許容するかしないかって事かな