SQL sluit aan
SQL JOIN
'n JOIN
Klousule word gebruik om rye van twee of meer tabelle te kombineer, gebaseer op 'n verwante kolom tussen hulle.
Kom ons kyk na 'n keuse uit die "Bestellings"-tabel:
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Kyk dan na 'n keuse uit die "Klante"-tabel:
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
Let daarop dat die "CustomerID"-kolom in die "Bestellings"-tabel verwys na die "CustomerID" in die "Customer"-tabel. Die verhouding tussen die twee tabelle hierbo is die "CustomerID"-kolom.
Dan kan ons die volgende SQL-stelling skep (wat 'n bevat
INNER JOIN
) wat rekords kies wat ooreenstem met waardes in beide tabelle:
Voorbeeld
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
en dit sal iets soos hierdie produseer:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
Verskillende tipes SQL JOINs
Hier is die verskillende tipes JOINs in SQL:
(INNER) JOIN
: Wys rekords wat ooreenstem met waardes in beide tabelleLEFT (OUTER) JOIN
: Wys alle rekords vanaf die linkertabel, en die ooreenstemmende rekords van die regtertabelRIGHT (OUTER) JOIN
: Wys alle rekords vanaf die regtertabel, en die ooreenstemmende rekords van die linkertabelFULL (OUTER) JOIN
: Wys alle rekords wanneer daar 'n passing in die linker- of regtertabel is