Từ khóa tham gia SQL
THAM GIA INNER
Lệnh INNER JOIN
trả về các hàng có giá trị phù hợp trong cả hai bảng.
SQL sau chọn tất cả các đơn đặt hàng có thông tin khách hàng:
Thí dụ
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID;
Lưu ý: Từ khóa INNER JOIN chọn tất cả các hàng từ cả hai bảng miễn là có sự trùng khớp giữa các cột. Nếu có bản ghi trong bảng "Đơn đặt hàng" không khớp trong "Khách hàng", những đơn đặt hàng này sẽ không được hiển thị!
Câu lệnh SQL sau chọn tất cả các đơn đặt hàng có thông tin về khách hàng và người giao hàng:
Thí dụ
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM
((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
CHỖ NỐI BÊN TRÁI
Lệnh LEFT JOIN
trả về tất cả các hàng từ bảng bên trái và các hàng phù hợp từ bảng bên phải. Kết quả là NULL từ phía bên phải, nếu không có kết quả phù hợp.
SQL sau sẽ chọn tất cả khách hàng và bất kỳ đơn đặt hàng nào mà họ có thể có:
Thí dụ
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Lưu ý: Từ LEFT JOIN
khóa trả về tất cả các bản ghi từ bảng bên trái (Khách hàng), ngay cả khi không có bản ghi nào phù hợp trong bảng bên phải (Đơn hàng).
THAM GIA ĐÚNG
Lệnh RIGHT JOIN
trả về tất cả các hàng từ bảng bên phải và các bản ghi phù hợp từ bảng bên trái. Kết quả là NULL từ phía bên trái, khi không có kết quả phù hợp.
SQL sau sẽ trả về tất cả nhân viên và bất kỳ đơn hàng nào họ có thể đã đặt:
Thí dụ
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Lưu ý: Từ RIGHT JOIN
khóa trả về tất cả các bản ghi từ bảng bên phải (Nhân viên), ngay cả khi không có bản ghi nào phù hợp trong bảng bên trái (Đơn hàng).
THAM GIA NGOÀI TRỜI ĐẦY ĐỦ
Lệnh FULL OUTER JOIN
trả về tất cả các hàng khi có sự trùng khớp trong bảng bên trái hoặc bảng bên phải.
Câu lệnh SQL sau chọn tất cả khách hàng và tất cả các đơn đặt hàng:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Lưu ý: Từ FULL OUTER JOIN
khóa trả về tất cả các hàng từ bảng bên trái (Khách hàng) và tất cả các hàng từ bảng bên phải (Đơn hàng). Nếu có hàng trong "Khách hàng" không khớp trong "Đơn hàng" hoặc nếu có hàng trong "Đơn hàng" không khớp trong "Khách hàng", thì những hàng đó cũng sẽ được liệt kê.