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.