JOIN ghép dòng giữa hai bảng; khác nhau ở chỗ có giữ lại dòng không khớp hay không:
- INNER JOIN: chỉ giữ dòng khớp ở cả hai bảng.
- LEFT JOIN: giữ toàn bộ bảng trái, bên phải không khớp thì điền NULL.
- RIGHT JOIN: ngược lại, giữ toàn bộ bảng phải.
- FULL OUTER JOIN: giữ cả hai phía, thiếu thì NULL.
- CROSS JOIN: ghép mọi dòng với mọi dòng (tích Descartes).
Bẫy kinh điển: sau LEFT JOIN, nếu đặt điều kiện về bảng phải trong WHERE, bạn vô tình loại hết dòng NULL và biến nó thành INNER JOIN. Muốn giữ dòng không khớp, đặt điều kiện đó trong ON.