Middle
Jakie rodzaje JOINów istnieją w SQL i czym różnią się LEFT JOIN, RIGHT JOIN i INNER JOIN?
sobes.tech AI
Odpowiedź od AI
W SQL istnieje kilka rodzajów JOIN, które pozwalają łączyć wiersze z dwóch tabel na podstawie określonego warunku:
- INNER JOIN — zwraca tylko te wiersze, które mają dopasowania w obu tabelach.
- LEFT JOIN (LEFT OUTER JOIN) — zwraca wszystkie wiersze z lewej tabeli i dopasowane wiersze z prawej. Jeśli dopasowania nie ma, pola z prawej tabeli będą NULL.
- RIGHT JOIN (RIGHT OUTER JOIN) — odwrotnie, zwraca wszystkie wiersze z prawej tabeli i dopasowane z lewej, z NULL tam, gdzie dopasowania brak.
Przykład:
Tabela A:
| id | nazwa |
|---|---|
| 1 | Alice |
| 2 | Bob |
Tabela B:
| id | miasto |
|---|---|
| 1 | Londyn |
| 3 | Berlin |
- INNER JOIN po id zwróci tylko id=1 (Alice i Londyn).
- LEFT JOIN zwróci:
- id=1 (Alice, Londyn)
- id=2 (Bob, NULL)
- RIGHT JOIN zwróci:
- id=1 (Alice, Londyn)
- id=3 (NULL, Berlin)
W ten sposób LEFT i RIGHT JOIN zachowują wszystkie wiersze z jednej z tabel, uzupełniając je danymi z drugiej, a INNER JOIN — tylko pasujące.