Trong SQL, JOIN là một câu lệnh được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng dựa trên một điều kiện liên quan giữa chúng. Dưới đây là sự khác biệt giữa các loại JOIN phổ biến trong SQL:
1. INNER JOIN
INNER JOIN trả về các hàng khi có sự khớp nhau trong cả hai bảng.
Ví dụ:
SELECT A.column1, B.column2
FROM TableA A
INNER JOIN TableB B ON A.common_column = B.common_column;
2. LEFT JOIN (LEFT OUTER JOIN)
LEFT JOIN trả về tất cả các hàng từ bảng bên trái (TableA), và các hàng khớp từ bảng bên phải (TableB). Nếu không có sự khớp nhau, kết quả từ bảng bên phải sẽ là NULL.
Ví dụ:
SELECT A.column1, B.column2
FROM TableA A
LEFT JOIN TableB B ON A.common_column = B.common_column;
3. RIGHT JOIN (RIGHT OUTER JOIN)
RIGHT JOIN trả về tất cả các hàng từ bảng bên phải (TableB), và các hàng khớp từ bảng bên trái (TableA). Nếu không có sự khớp nhau, kết quả từ bảng bên trái sẽ là NULL.
Ví dụ:
SELECT A.column1, B.column2
FROM TableA A
RIGHT JOIN TableB B ON A.common_column = B.common_column;
4. FULL JOIN (FULL OUTER JOIN)
FULL JOIN trả về tất cả các hàng khi có sự khớp nhau trong một trong hai bảng. Nếu không có sự khớp nhau, kết quả từ bảng này hoặc bảng kia sẽ là NULL.
Ví dụ:
SELECT A.column1, B.column2
FROM TableA A
FULL JOIN TableB B ON A.common_column = B.common_column;
5. CROSS JOIN
CROSS JOIN trả về tích Descartes của hai bảng. Điều này có nghĩa là nó sẽ kết hợp mỗi hàng của bảng A với mỗi hàng của bảng B.
Ví dụ:
SELECT A.column1, B.column2
FROM TableA A
CROSS JOIN TableB B;
6. SELF JOIN
SELF JOIN là một bảng tự kết hợp với chính nó.
Ví dụ:
SELECT A.column1, B.column2
FROM TableA A, TableA B
WHERE A.common_column = B.common_column;
Tổng Kết:
- INNER JOIN: Chỉ trả về các hàng khớp nhau trong cả hai bảng.
- LEFT JOIN: Trả về tất cả các hàng từ bảng bên trái và các hàng khớp từ bảng bên phải.
- RIGHT JOIN: Trả về tất cả các hàng từ bảng bên phải và các hàng khớp từ bảng bên trái.
- FULL JOIN: Trả về tất cả các hàng khi có sự khớp nhau trong một trong hai bảng.
- CROSS JOIN: Trả về tích Descartes của hai bảng.
- SELF JOIN: Tự kết hợp bảng với chính
Comments