Junior #join
INNER, LEFT, RIGHT, FULL JOIN khác nhau thế nào?
⚡ Trả lời nhanh
INNER lấy các dòng khớp ở cả hai bảng; LEFT giữ mọi dòng bảng trái (không khớp thì NULL); RIGHT ngược lại; FULL giữ tất cả dòng của cả hai.
-- users(id, name) orders(id, user_id, total)
SELECT u.name, o.total
FROM users u
LEFT JOIN orders o ON o.user_id = u.id; -- user chưa mua vẫn xuất hiện, total = NULL
-- Tìm user chưa có đơn hàng
SELECT u.* FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE o.id IS NULL;