Eine weitere Form des Join ist der Outer Join. Er wird gebildet, indem Sie im Join-Ausdruck das Schlüsselwort LEFT, RIGHT oder FULL verwenden. Im Gegensatz zum Inner Join gilt bei einem Outer Join:
Es gibt eine (LEFT, RIGHT) oder zwei (FULL) dominante Tabellen. Erfüllt ein Satz einer dominanten Tabelle nicht die Join-Bedingung, wird der Satz trotzdem in die Ergebnistabelle übernommen. Die Ergebnisspalten, die sich auf die andere Tabelle beziehen, werden auf NULL-Werte gesetzt.
Beispiel
Wie im Beispiel für den Inner Join möchten Sie aus den Tabellen KUNDE und AUFTRAG Kundenname und zugehörige Auftragsnummer heraussuchen. Es sollen aber alle Kunden aufgelistet werden, auch solche, die noch keinen Auftrag gestellt haben. Dazu formulieren Sie folgenden Outer Join:
SELECT firma, anr FROM kunde
LEFT OUTER JOIN auftrag ON kunde.knr=auftrag.knr
Kunden, die keinen Auftrag erteilt haben, zum Beispiel die Firma Jonas Fischladen mit der Kundennummer 104, sind jetzt in der Ergebnistabelle enthalten. Für die fehlende Auftragsnummer ist der NULL-Wert eingetragen.
firma anr Siemens AG Login GmbH 300 JIKO GmbH 200 Plenzer Trading Jonas Fischladen Pudelshop Anke 250 Pudelshop Anke 251 Pudelshop Anke 305 Foreign Ltd. 210 Foreign Ltd. 211 Externa & Co KG