Từ khóa THAM GIA SQL
THAM GIA TRONG
Lệnh INNER JOIN
trả về các hàng có giá trị trùng khớp trong cả hai bảng.
SQL sau đây chọn tất cả các đơn hàng có thông tin khách hàng:
Ví dụ
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID;
Hãy tự mình thử »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 hàng" không khớp với "Khách hàng", những đơn hàng này sẽ không được hiển thị!
Câu lệnh SQL sau đây chọn tất cả các đơn hàng có thông tin khách hàng và người gửi hàng:
Ví 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);
Hãy tự mình thử »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 ở phía bên phải, nếu không có kết quả trùng khớp.
SQL sau sẽ chọn tất cả khách hàng và bất kỳ đơn hàng nào họ có thể có:
Ví dụ
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Hãy tự mình thử » Lưu ý: Từ khóa LEFT JOIN
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ó kết quả nào phù hợp ở bảng bên phải (Đơn hàng).
QUYỀN THAM GIA
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ả khớ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:
Ví dụ
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Hãy tự mình thử » Lưu ý: Từ khóa RIGHT JOIN
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ó kết quả nào phù hợp ở bảng bên trái (Đơn hàng).
THAM GIA BÊN NGOÀI ĐẦY ĐỦ
Lệnh FULL OUTER JOIN
trả về tất cả các hàng khi có sự trùng khớp ở bảng bên trái hoặc bảng bên phải.
Câu lệnh SQL sau đây chọn tất cả khách hàng và tất 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ừ khóa FULL OUTER JOIN
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ó các hàng trong "Khách hàng" không khớp trong "Đơn hàng" hoặc nếu có các hàng trong "Đơn hàng" không khớp trong "Khách hàng" thì các hàng đó cũng sẽ được liệt kê.