En JOIN kombinerar rader från två tabeller genom att matcha ett villkor, vanligtvis en foreign key. Join-typen avgör vad som händer med rader som inte har någon matchning på den andra sidan.
En JOIN kombinerar rader från två tabeller genom att matcha ett villkor, vanligtvis en foreign key. Join-typen avgör vad som händer med rader som inte har någon matchning på den andra sidan.
NULL.-- customers(id, name) orders(id, customer_id, total)
-- INNER: only customers who have at least one order
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: every customer, even those with zero orders (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Classic use: find customers with NO orders
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- the LEFT JOIN's NULL side reveals the gap
WHERE (t.ex. WHERE o.total > 100) förvandlar i tysthet en LEFT JOIN tillbaka till en INNER JOIN, eftersom NULL > 100 är falskt. Placera sådana villkor i ON-satsen om du vill behålla omatchade rader.De flesta verkliga frågor sträcker sig över flera tabeller, och fel join-typ tappar eller duplicerar rader i tysthet — en bugg som returnerar rimliga resultat. Att veta att LEFT JOIN + IS NULL hittar "saknade" rader, och att ett WHERE på null-sidan upphäver LEFT, förhindrar en hel klass av rapporteringsfel.
Ett bibliotek med IT-intervjufrågor och detaljerade svar — från Junior till Senior.
Donera