====== Outer Join ====== {{:dbs:sql:abteilung_mitarbeiter_blau.png?direct&|}} Zu Beginn ein einführendes Beispiel. Wir haben wieder unsere 2 Tabellen und wollen wieder die Mitarbeiter mit deren Abteilung angezeigen. Allerdings wollen wir auch wirklich ALLE Abteilungen sehen (auch jene, in denen kein Mitarbeiter arbeitet) Mit dem OUTER JOIN werden auch Zeilen angezeigt, die sonst nicht angezeigt werden. ===== Syntax ===== SELECT ... FROM Tabellenname1 [Alias] {FULL | LEFT | RIGHT} OUTER JOIN Tabellenname2 [Alias] * FULL * Alle Datensätze der linken UND rechten Tabelle sollen mind. 1 mal angezeigt werden * LEFT * Alle Datensätze der linken Tabelle sollen mind. 1 mal angezeigt werden * RIGHT * Alle Datensätze der rechten Tabelle sollen mind. 1 mal angezeigt werden Nun zu der Lösung unseres Beispiels: SELECT Name, Abteilungsname FROM Abteilung a LEFT OUTER JOIN Mitarbeiter m USING(Abteilungsnummer) ===== Alte Syntax ===== In der alten Syntaxschreibweise gibt es keinen FULL OUTER JOIN. RIGHT bzw. LEFT werden durch ein "(+)" gekennzeichnet. Das "(+)" steht auf der Seite jender Tabelle die mit null-Werten ergänzt werden muss. Das obige Beispiel würde wie folgt aussehen: SELECT Name, Abteilungsname FROM (+)Abteilung, Mitarbeiter