Middle
Koje vrste JOIN-ova postoje u SQL i u čemu se razlikuju LEFT JOIN, RIGHT JOIN i INNER JOIN?
sobes.tech АИ
Одговор од АИ
U SQL-u postoji nekoliko vrsta JOIN-ova koji omogućavaju spajanje redova iz dve tabele prema određenom uslovu:
- INNER JOIN — vraća samo one redove koji imaju podudaranja u obe tabele.
- LEFT JOIN (LEFT OUTER JOIN) — vraća sve redove iz leve tabele i odgovarajuće redove iz desne. Ako nema podudaranja, polja desne tabele će biti NULL.
- RIGHT JOIN (RIGHT OUTER JOIN) — obrnuto, vraća sve redove iz desne tabele i odgovarajuće iz leve, sa NULL tamo gde nema podudaranja.
Primer:
Tabela A:
| id | ime |
|---|---|
| 1 | Alice |
| 2 | Bob |
Tabela B:
| id | grad |
|---|---|
| 1 | London |
| 3 | Berlin |
- INNER JOIN po id će vratiti samo id=1 (Alice i London).
- LEFT JOIN će vratiti:
- id=1 (Alice, London)
- id=2 (Bob, NULL)
- RIGHT JOIN će vratiti:
- id=1 (Alice, London)
- id=3 (NULL, Berlin)
Na ovaj način, LEFT i RIGHT JOIN čuvaju sve redove iz jedne od tabela i dopunjavaju ih podacima iz druge, dok INNER JOIN zadržava samo podudaranja.