JOIN kombinira retke iz dviju tablica podudaranjem po uvjetu, obično stranom ključu. Tip spajanja odlučuje što se događa s retcima koji nemaju podudaranja na drugoj strani.
JOIN kombinira retke iz dviju tablica podudaranjem po uvjetu, obično stranom ključu. Tip spajanja odlučuje što se događa s retcima koji nemaju podudaranja na drugoj strani.
NULL.-- customers(id, name) orders(id, customer_id, total)
-- INNER: samo kupci koji imaju barem jednu narudžbu
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: svaki kupac, čak i oni s nula narudžbi (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Klasična upotreba: pronađi kupce BEZ narudžbi
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- NULL strana LEFT JOIN-a otkriva prazninu
WHERE (npr. WHERE o.total > 100) tiho pretvara LEFT JOIN natrag u INNER JOIN, jer je NULL > 100 neistina. Stavite takve uvjete u ON klauzulu ako želite zadržati nepodudarene retke.Većina stvarnih upita obuhvaća više tablica, a pogrešan tip spajanja tiho ispušta ili duplicira retke — bug koji vraća uvjerljive rezultate. Znanje da LEFT JOIN + IS NULL pronalazi "nedostajuće" retke, i da WHERE na null strani poništava LEFT, sprječava čitavu klasu grešaka u izvještajima.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj