Sobes.tech
Senior

Koje vrste JOIN-ova poznaješ i po čemu se razlikuju?

sobes.tech АИ

Одговор од АИ

Glavne vrste JOIN u SQL-u i njihove razlike:

  • INNER JOIN — vraća samo one zapise koji imaju podudaranja u obe tabele prema uslovu spajanja.

  • LEFT JOIN (LEFT OUTER JOIN) — vraća sve zapise iz leve tabele i podudaranja iz desne. Ako nema podudaranja, polja desne tabele će biti NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — vraća sve zapise iz desne tabele i podudaranja iz leve.

  • FULL JOIN (FULL OUTER JOIN) — vraća sve zapise iz obe tabele, podudaranja i nepodudaranja, sa NULL na mestima gde nema podataka.

  • CROSS JOIN — kartezijev proizvod dve tabele, vraća sve moguće kombinacije redova.

Primer:

-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;

-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;

-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;

-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;

Izbor JOIN-a zavisi od toga koje podatke želite da dobijete i kako da rukujete nedostajućim podudaranjima.