Mệnh đề JOIN trong SQL được sử dụng để kết hợp các bản ghi từ hai hay nhiều bảng trong cơ sở dữ liệu. JOIN là một phương tiện để kết hợp các trường từ hai bảng bằng cách sử dụng các giá trị chung cho mỗi bảng.
Xem xét hai bảng sau:
Bảng 1 - Bảng CUSTOMERS
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ha Anh | 32 | Da Nang | 2000.00 | | 2 | Van Ha | 25 | Ha Noi | 1500.00 | | 3 | Vu Bang | 23 | Vinh | 2000.00 | | 4 | Thu Minh | 25 | Ha Noi | 6500.00 | | 5 | Hai An | 27 | Ha Noi | 8500.00 | | 6 | Hoang | 22 | Ha Noi | 4500.00 | | 7 | Binh | 24 | Ha Noi | 10000.00 | +----+----------+-----+-----------+----------+
Bảng 2 - Bảng ORDERS
+-----+---------------------+-------------+--------+ |OID | DATE | CUSTOMER_ID | AMOUNT | +-----+---------------------+-------------+--------+ | 102 | 2009-10-08 00:00:00 | 3 | 3000 | | 100 | 2009-10-08 00:00:00 | 3 | 1500 | | 101 | 2009-11-20 00:00:00 | 2 | 1560 | | 103 | 2008-05-20 00:00:00 | 4 | 2060 | +-----+---------------------+-------------+--------+
Bây giờ, chúng ta hãy join hai bảng trong câu lệnh SELECT của chúng ta như thể hiện dưới đây.
SELECT ID, NAME, AGE, AMOUNT FROM CUSTOMERS, ORDERS WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
Điều này sẽ tạo ra kết quả sau.
Output:
+----+----------+-----+--------+ | ID | NAME | AGE | AMOUNT | +----+----------+-----+--------+ | 3 | Vu Bang | 23 | 3000 | | 3 | Vu Bang | 23 | 1500 | | 2 | Van Ha | 25 | 1560 | | 4 | Thu Minh | 25 | 2060 | +----+----------+-----+--------+
Ở đây, đáng chú ý là tham gia được thực hiện trong mệnh đề WHERE. Một số toán tử có thể được sử dụng để kết nối các bảng, chẳng hạn như =, <,>, <>, <=,> =,! =, BETWEEN, LIKE, và NOT; Tất cả chúng có thể được sử dụng để kết nối các bảng. Tuy nhiên, các toán tử phổ biến nhất là bằng với biểu tượng.
Các kiểu join trong SQL:
- INNER JOIN - trả về hàng khi có một sự phù hợp trong cả hai bảng.
- LEFT JOIN - trả về tất cả các hàng từ bảng bên trái, ngay cả khi không có sự phù hợp trong bảng bên phải.
- RIGHT JOIN - trả về tất cả các hàng từ bảng bên phải, ngay cả khi không có sự phù hợp nào ở bảng bên trái.
- FULL JOIN - trả về hàng khi có một sự phù hợp trong một trong các bảng.
- SELF JOIN - được sử dụng để tham gia một bảng với chính nó như thể bảng đó là hai bảng, tạm thời đổi tên ít nhất một bảng trong câu lệnh SQL.