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_Name SALES
Boston 700
New York 
Los Angeles 1800
San Diego 250

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 >>

Diese Seite wurde zuletzt am 26.06.2022 aktualisiert




Copyright © 2024   1keydata.com   Alle Rechte vorbehalten