SQL 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
Tabelle Geography
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:
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.
Copyright © 2024 1keydata.com Alle Rechte vorbehalten |