Sobes.tech
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.