Junior
Ako funguje SQL Join?
sobes.tech AI
Odpoveď od AI
SQL JOIN spája riadky z dvoch alebo viacerých tabuliek na základe spoločného stĺpca medzi nimi. Existuje niekoľko typov JOIN:
INNER JOIN: Vráti riadky, kde sa hodnoty zhodujú v oboch tabuľkách.LEFT (OUTER) JOIN: Vráti všetky riadky z ľavej tabuľky a zhodné riadky z pravej. Ak nie sú zhody, stĺpce pravej tabuľky budú mať hodnotuNULL.RIGHT (OUTER) JOIN: Vráti všetky riadky z pravej tabuľky a zhodné riadky z ľavej. Ak nie sú zhody, stĺpce ľavej tabuľky budú mať hodnotuNULL.FULL (OUTER) JOIN: Vráti všetky riadky z oboch tabuliek. Ak nie sú zhody, chýbajúce stĺpce budú mať hodnotuNULL.CROSS JOIN: Vráti kartézsky súčin dvoch tabuliek (každý riadok z prvej tabuľky sa spojí s každým riadkom z druhej).
Syntax vyzerá takto:
SELECT stĺpec1, stĺpec2...
FROM tabuľka1
JOIN tabuľka2 ON tabuľka1.spoločný_stĺpec = tabuľka2.spoločný_stĺpec;
Príklad INNER JOIN:
SELECT objednávky.order_id, zákazníci.customer_name
FROM objednávky
INNER JOIN zákazníci ON objednávky.customer_id = zákazníci.customer_id;
Pozrime sa na tabuľky zákazníci a objednávky:
zákazníci
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
objednávky
| order_id | customer_id | amount |
|---|---|---|
| 101 | 1 | 100 |
| 102 | 2 | 150 |
| 103 | 1 | 200 |
| 104 | 4 | 50 |
Výsledok INNER JOIN bude:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
Výsledok LEFT JOIN (objednávky LEFT JOIN zákazníci):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |