SQL - Sử dụng tham gia
SQL Joinsmệnh đề được sử dụng để kết hợp các bản ghi từ hai hoặc 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.
Hãy xem xét hai bảng sau:
Table 1 - Bảng KHÁCH HÀNG
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Table 2 - Bảng ĐƠN HÀNG
+-----+---------------------+-------------+--------+
|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 nối hai bảng này trong câu lệnh SELECT như hình dưới đây.
SQL> 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.
+----+----------+-----+--------+
| ID | NAME | AGE | AMOUNT |
+----+----------+-----+--------+
| 3 | kaushik | 23 | 3000 |
| 3 | kaushik | 23 | 1500 |
| 2 | Khilan | 25 | 1560 |
| 4 | Chaitali | 25 | 2060 |
+----+----------+-----+--------+
Ở đây, điều đáng chú ý là phép nối được thực hiện trong mệnh đề WHERE. Một số toán tử có thể được sử dụng để nối các bảng, chẳng hạn như =, <,>, <>, <=,> =,! =, BETWEEN, LIKE và NOT; tất cả chúng đều có thể được sử dụng để nối các bảng. Tuy nhiên, toán tử phổ biến nhất là ký hiệu bằng.
Có nhiều kiểu nối khác nhau có sẵn trong SQL -
INNER JOIN - trả về các hàng khi có sự trùng khớ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ó hàng nào 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ó hàng nào phù hợp trong bảng bên trái.
FULL JOIN - trả về các hàng khi có một kết quả phù hợp trong một trong các bảng.
SELF JOIN - được sử dụng để nối 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.
CARTESIAN JOIN - trả về tích Descartes của các tập hợp các bản ghi từ hai hoặc nhiều bảng được kết hợp.
Bây giờ chúng ta hãy thảo luận chi tiết về từng kết hợp này.