Ein JOIN kombiniert Zeilen aus zwei Tabellen, indem er eine Bedingung abgleicht, meist einen Fremdschlüssel. Der Typ des Joins entscheidet, was mit Zeilen passiert, die auf der anderen Seite keine Entsprechung haben.
Ein JOIN kombiniert Zeilen aus zwei Tabellen, indem er eine Bedingung abgleicht, meist einen Fremdschlüssel. Der Typ des Joins entscheidet, was mit Zeilen passiert, die auf der anderen Seite keine Entsprechung haben.
NULL zurück.-- 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 zu filtern (z. B. WHERE o.total > 100) verwandelt einen LEFT JOIN stillschweigend wieder in einen INNER JOIN, weil NULL > 100 falsch ist. Setze solche Bedingungen in die ON-Klausel, wenn du nicht übereinstimmende Zeilen behalten möchtest.Die meisten realen Abfragen erstrecken sich über mehrere Tabellen, und der falsche Join-Typ lässt Zeilen leise wegfallen oder verdoppelt sie — ein Fehler, der plausible Ergebnisse liefert. Zu wissen, dass LEFT JOIN + IS NULL "fehlende" Zeilen findet und dass ein WHERE auf der NULL-Seite den LEFT aufhebt, verhindert eine ganze Klasse von Reporting-Fehlern.
Eine Sammlung von IT-Interviewfragen mit ausführlichen Antworten — vom Junior bis zum Senior.
Spenden