SQL JOIN Sleutelwoord
INNERLIKE SLUIT
Die INNER JOIN
opdrag gee rye terug wat ooreenstem met waardes in beide tabelle.
Die volgende SQL kies alle bestellings met klantinligting:
Voorbeeld
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID;
Let wel: Die INNER JOIN-sleutelwoord kies alle rye uit beide tabelle solank daar 'n passing tussen die kolomme is. As daar rekords in die "Bestellings"-tabel is wat nie passings in "Klante" het nie, sal hierdie bestellings nie gewys word nie!
Die volgende SQL-stelling kies alle bestellings met kliënt- en versenderinligting:
Voorbeeld
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);
LINKS SLUIT AAN
Die LEFT JOIN
opdrag gee alle rye van die linkertabel terug, en die ooreenstemmende rye van die regtertabel. Die resultaat is NULL vanaf die regterkant, as daar geen passing is nie.
Die volgende SQL sal alle klante kies, en enige bestellings wat hulle mag hê:
Voorbeeld
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Let wel: Die LEFT JOIN
sleutelwoord gee alle rekords van die linkertabel terug (Klante), selfs al is daar geen passings in die regtertabel (Bestellings).
REGS SLUIT AAN
Die RIGHT JOIN
opdrag gee alle rye van die regtertabel terug, en die ooreenstemmende rekords van die linkertabel. Die resultaat is NULL vanaf die linkerkant, wanneer daar geen passing is nie.
Die volgende SQL sal alle werknemers terugstuur, en enige bestellings wat hulle dalk geplaas het:
Voorbeeld
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Let wel: Die RIGHT JOIN
sleutelwoord gee alle rekords van die regtertabel terug (Werknemers), selfs al is daar geen passings in die linkertabel (Bestellings).
VOLLE BUITE AANSLUIT
Die FULL OUTER JOIN
opdrag gee alle rye terug wanneer daar 'n passing in óf linkertabel óf regtertabel is.
Die volgende SQL-stelling kies alle kliënte en alle bestellings:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Let wel: Die FULL OUTER JOIN
sleutelwoord gee al die rye van die linkertabel terug (Kliënte), en al die rye van die regtertabel (Bestellings). As daar rye in "Klante" is wat nie passings in "Bestellings" het nie, of as daar rye in "Bestellings" is wat nie passings in "Klante" het nie, sal daardie rye ook gelys word.