Middle
Jaké typy JOIN existují v SQL a v čem se liší LEFT JOIN, RIGHT JOIN a INNER JOIN?
sobes.tech AI
Odpověď od AI
V SQL existuje několik typů JOIN, které umožňují spojovat řádky ze dvou tabulek podle určité podmínky:
- INNER JOIN — vrací pouze řádky, které mají shody v obou tabulkách.
- LEFT JOIN (LEFT OUTER JOIN) — vrací všechny řádky z levé tabulky a odpovídající řádky z pravé tabulky. Pokud shoda chybí, pole pravé tabulky bude NULL.
- RIGHT JOIN (RIGHT OUTER JOIN) — naopak, vrací všechny řádky z pravé tabulky a odpovídající z levé, s NULL tam, kde shoda chybí.
Příklad:
Tabulka A:
| id | jméno |
|---|---|
| 1 | Alice |
| 2 | Bob |
Tabulka B:
| id | město |
|---|---|
| 1 | Londýn |
| 3 | Berlín |
- INNER JOIN podle id vrátí pouze id=1 (Alice a Londýn).
- LEFT JOIN vrátí:
- id=1 (Alice, Londýn)
- id=2 (Bob, NULL)
- RIGHT JOIN vrátí:
- id=1 (Alice, Londýn)
- id=3 (NULL, Berlín)
Tímto způsobem LEFT a RIGHT JOIN zachovávají všechny řádky z jedné tabulky a doplňují je daty z druhé, zatímco INNER JOIN zachovává pouze shody.