Junior
Hoe werkt SQL Join?
sobes.tech AI
Antwoord van AI
SQL JOIN combineert rijen uit twee of meer tabellen op basis van een gerelateerde kolom tussen hen. Er zijn verschillende soorten JOIN:
INNER JOIN: Geeft rijen terug waar er overeenkomsten van waarden in beide tabellen zijn.LEFT (OUTER) JOIN: Geeft alle rijen uit de linker tabel en de overeenkomende rijen uit de rechter tabel. Als er geen overeenkomsten zijn in de rechter tabel, wordenNULL-waarden geretourneerd voor de kolommen van de rechter tabel.RIGHT (OUTER) JOIN: Geeft alle rijen uit de rechter tabel en de overeenkomende rijen uit de linker tabel. Als er geen overeenkomsten zijn in de linker tabel, wordenNULL-waarden geretourneerd voor de kolommen van de linker tabel.FULL (OUTER) JOIN: Geeft alle rijen uit beide tabellen. Als er geen overeenkomsten zijn, wordenNULL-waarden geretourneerd voor de overeenkomstige kolommen.CROSS JOIN: Geeft het cartesiaanse product van twee tabellen (elke rij uit de eerste tabel wordt gecombineerd met elke rij uit de tweede).
De syntax ziet er meestal zo uit:
SELECT kolom1, kolom2...
FROM tabel1
JOIN tabel2 ON tabel1.gemeenschappelijke_kolom = tabel2.gemeenschappelijke_kolom;
Voorbeeld van INNER JOIN:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
Laten we de tabellen customers en orders bekijken:
customers
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
orders
| order_id | customer_id | amount |
|---|---|---|
| 101 | 1 | 100 |
| 102 | 2 | 150 |
| 103 | 1 | 200 |
| 104 | 4 | 50 |
Het resultaat van INNER JOIN zal zijn:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
Het resultaat van LEFT JOIN (orders LEFT JOIN customers):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |