SQL > SQL Befehle > Outer Join 

Im vorhergehenden Abschnitt haben wir uns mit dem linken oder inneren Verbund beschäftigt, bei dem Zeilen ausgewählt werden, die den verknüpften Tabellen gemeinsam sind. Nun könnten wir aber auch an Elementen in einer Tabelle interessiert sein, die sich nicht unbedingt in der zweiten Tabelle befinden. In diesem Fall müssen wir den Befehl SQL OUTER JOIN verwenden.

Die Syntax für die Verknüpfung als äußerer Verbund in SQL ist datenbankabhängig. In Oracle zum Beispiel platzieren wir ein "(+)" in der WHERE-Klausel auf der anderen Seite der Tabelle, für die alle Zeilen mitaufgenommen werden sollen.

Nehmen wir an, es liegen die folgenden zwei Tabellen vor,

Tabelle Store_Information

Store_Name Sales Txn_Date
Los Angeles 1500 05.Jan.1999
San Diego 250 07.Jan.1999
Los Angeles 300 08.Jan.1999
Boston 700 08.Jan.1999

Tabelle Geography

Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego

und wir möchten den Umsatz für alle Warenhäuser ermitteln. Bei einem regulären Verbund wäre dies nicht möglich, denn es würde das Warenhaus "New York" fehlen, das in der Tabelle Store_Information nicht enthalten ist. Wir müssen daher die zwei Tabellen zu einem äußeren Verbund kombinieren.

SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name (+)
GROUP BY A1.Store_Name;

Beachten Sie, dass wir im vorliegenden Fall die Oracle-Syntax verwenden.

Ergebnis:

Store_NameSALES
Boston700
New York
Los Angeles1800
San Diego250

Hinweis: NULL wird ausgegeben, wenn es keine Entsprechung in der zweiten Tabelle gibt. Im vorliegenden Fall ist "New York" nicht in der Tabelle Store_Information enthalten, weshalb die entsprechende Spalte "Sales" den Inhalt NULL hat. 

SQL Unterabfrage >>





Copyright © 2014   1keydata.com   Alle Rechte vorbehalten.