MySQL sluit aan
MySQL-aansluitingstabelle
'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 |
Ondersteunde tipes aansluitings in MySQL
INNER JOIN
: Wys rekords wat ooreenstem met waardes in beide tabelleLEFT JOIN
: Wys alle rekords vanaf die linkertabel, en die ooreenstemmende rekords van die regtertabelRIGHT JOIN
: Wys alle rekords vanaf die regtertabel, en die ooreenstemmende rekords van die linkertabelCROSS JOIN
: Wys alle rekords van beide tabelle