Junior
Cum funcționează SQL Join?
sobes.tech AI
Răspuns de la AI
JOIN în SQL combină rânduri din două sau mai multe tabele pe baza unei coloane legate între ele. Există mai multe tipuri de JOIN:
INNER JOIN: Returnează rândurile în care există potriviri de valori în ambele tabele.LEFT (OUTER) JOIN: Returnează toate rândurile din tabelul din stânga și rândurile corespunzătoare din tabelul din dreapta. Dacă nu există potriviri în tabelul din dreapta, se returnează valoriNULLpentru coloanele din tabelul din dreapta.RIGHT (OUTER) JOIN: Returnează toate rândurile din tabelul din dreapta și rândurile corespunzătoare din tabelul din stânga. Dacă nu există potriviri în tabelul din stânga, se returnează valoriNULLpentru coloanele din tabelul din stânga.FULL (OUTER) JOIN: Returnează toate rândurile din ambele tabele. Dacă nu există potriviri, se returnează valoriNULLpentru coloanele corespunzătoare.CROSS JOIN: Returnează produsul cartezian al celor două tabele (fiecare rând din prima tabel este combinat cu fiecare rând din a doua).
Sintaxa de obicei arată astfel:
SELECT coloană1, coloană2...
FROM tabel1
JOIN tabel2 ON tabel1.coloană_comună = tabel2.coloană_comună;
Exemplu de INNER JOIN:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
Să considerăm tabelele customers și orders:
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 |
Rezultatul INNER JOIN va fi:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
Rezultatul 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 |