JOIN łączy wiersze z dwóch tabel, dopasowując je po warunku, zwykle po kluczu obcym. Typ złączenia decyduje o tym, co dzieje się z wierszami, które nie mają dopasowania po drugiej stronie.
JOIN łączy wiersze z dwóch tabel, dopasowując je po warunku, zwykle po kluczu obcym. Typ złączenia decyduje o tym, co dzieje się z wierszami, które nie mają dopasowania po drugiej stronie.
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 (np. WHERE o.total > 100) po cichu zamienia LEFT JOIN z powrotem w INNER JOIN, ponieważ NULL > 100 jest fałszem. Umieść takie warunki w klauzuli ON, jeśli chcesz zachować niedopasowane wiersze.Większość rzeczywistych zapytań obejmuje wiele tabel, a niewłaściwy typ złączenia po cichu gubi lub duplikuje wiersze — to błąd, który zwraca wiarygodne wyniki. Świadomość, że LEFT JOIN + IS NULL znajduje „brakujące" wiersze, oraz że WHERE po stronie null anuluje LEFT, zapobiega całej klasie błędów raportowych.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj