En JOIN kombinerer rækker fra to tabeller ved at matche en betingelse, som regel en foreign key. Join-typen afgør, hvad der sker med rækker, der ikke har noget match på den anden side.
En JOIN kombinerer rækker fra to tabeller ved at matche en betingelse, som regel en foreign key. Join-typen afgør, hvad der sker med rækker, der ikke har noget match på den anden side.
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 (f.eks. WHERE o.total > 100) forvandler tavst en LEFT JOIN tilbage til en INNER JOIN, fordi NULL > 100 er falsk. Læg sådanne betingelser i ON-klausulen, hvis du vil beholde umatchede rækker.De fleste rigtige queries spænder over flere tabeller, og den forkerte join-type dropper eller duplikerer tavst rækker — en bug, der returnerer plausible resultater. At vide, at LEFT JOIN + IS NULL finder "manglende" rækker, og at et WHERE på null-siden ophæver LEFT'en, forhindrer en hel klasse af rapporteringsfejl.
Et bibliotek af IT-interviewspørgsmål med detaljerede svar — fra Junior til Senior.
Donér