SQL trung cấp — JOIN & GROUP BY

Ba mô-đun tương tác: (1) mô phỏng các loại JOIN, (2) mô phỏng GROUP BY + aggregate, (3) WHERE vs HAVING (lọc trước/sau gom). Dùng chung 2 bảng customers & orders.

1 · Mô phỏng JOIN

Chọn loại JOIN rồi bấm Ghép. Điều kiện: customers.id = orders.customer_id. Ô NULL tô đỏ.

customers (m = 4)
orders (n = 5)
INNER JOIN LEFT JOIN RIGHT JOIN FULL OUTER CROSS JOIN

2 · Mô phỏng GROUP BY + aggregate

Gom bảng orders theo một cột, rồi tính aggregate cho từng nhóm.

Gom theo: customer_id
Kết quả (mỗi nhóm 1 dòng):

3 · WHERE vs HAVING — lọc trước hay sau gom?

Cùng dữ liệu orders, hai chỗ lọc cho kết quả khác nhau.

WHERE amount ≥ 100 → GROUP BY

Lọc dòng trước, rồi mới gom & SUM.

GROUP BY → HAVING SUM > 350

Gom tất cả trước, rồi lọc nhóm theo tổng.