Een JOIN combineert rijen uit twee tabellen door een voorwaarde te matchen, meestal een foreign key. Het join-type bepaalt wat er gebeurt met rijen die geen match aan de andere kant hebben.
Een JOIN combineert rijen uit twee tabellen door een voorwaarde te matchen, meestal een foreign key. Het join-type bepaalt wat er gebeurt met rijen die geen match aan de andere kant hebben.
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 (bijv. WHERE o.total > 100) verandert een LEFT JOIN stilletjes weer in een INNER JOIN, omdat NULL > 100 false is. Zet zulke voorwaarden in de ON-clausule als je ongematchte rijen wilt behouden.De meeste echte queries beslaan meerdere tabellen, en het verkeerde join-type laat stilletjes rijen wegvallen of dupliceert ze — een bug die plausibele resultaten teruggeeft. Weten dat LEFT JOIN + IS NULL "ontbrekende" rijen vindt, en dat een WHERE op de null-kant de LEFT tenietdoet, voorkomt een hele klasse rapportagefouten.
Een bibliotheek met IT-sollicitatievragen met gedetailleerde antwoorden — van Junior tot Senior.
Doneren