MySQL wordt lid
MySQL-deelnametabellen
Een JOIN
clausule wordt gebruikt om rijen uit twee of meer tabellen te combineren op basis van een gerelateerde kolom ertussen.
Laten we eens kijken naar een selectie uit de tabel "Bestellingen":
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Bekijk vervolgens een selectie uit de tabel "Klanten":
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 |
Merk op dat de kolom "Klant-ID" in de tabel "Bestellingen" verwijst naar de "Klant-ID" in de tabel "Klanten". De relatie tussen de twee bovenstaande tabellen is de kolom "Klant-ID".
Vervolgens kunnen we de volgende SQL-instructie maken (die een
INNER JOIN
) bevat, die records selecteert met overeenkomende waarden in beide tabellen:
Voorbeeld
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
en het zal zoiets als dit opleveren:
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 soorten joins in MySQL
INNER JOIN
: Retourneert records met overeenkomende waarden in beide tabellenLEFT JOIN
: Retourneert alle records uit de linkertabel en de overeenkomende records uit de rechtertabelRIGHT JOIN
: Retourneert alle records uit de rechtertabel en de overeenkomende records uit de linkertabelCROSS JOIN
: Retourneert alle records uit beide tabellen