T-SQL - Nối các bảng
Máy chủ MS 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, bảng (a) CUSTOMERS như sau:
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
(b) Một bảng khác là ORDERS như sau:
OID DATE CUSTOMER_ID AMOUNT
100 2009-10-08 00:00:00.000 3 1500.00
101 2009-11-20 00:00:00.000 2 1560.00
102 2009-10-08 00:00:00.000 3 3000.00
103 2008-05-20 00:00:00.000 4 2060.00
Hãy để chúng tôi nối hai bảng này trong câu lệnh SELECT của chúng tôi như sau:
SELECT ID, NAME, AGE, AMOUNT
FROM CUSTOMERS, ORDERS
WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID
OR
SELECT A.ID, A.NAME, A.AGE, B.AMOUNT
FROM CUSTOMERS A inner join ORDERS B on A.ID = B.Customer_ID
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE AMOUNT
2 Khilan 25 1560.00
3 kaushik 23 1500.00
3 kaushik 23 3000.00
4 Chaitali 25 2060.00
Đ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ác kiểu tham gia MS SQL Server -
Có nhiều kiểu nối khác nhau có sẵn trong MS SQL Server -
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 - Điều này đượ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 MS SQL Server.
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 đã nối.