Databases Reference
In-Depth Information
3) Sowohl in der linken als auch in der rechten Tabelle sollen Tupel ohne Entspre-
chung in der anderen Tabelle übernommen werden; sog. Full Outer Join.
Anwendungsbeispiele
Die Aufzählung von Kunden und zugehörigen Bestellungen unter Einschluss der
Kunden, von denen noch keine Bestellung eingegangen ist, erhalten wir mit fol-
gender Anweisung:
SELECT k.name, b.bestell_nr, b.bestelldatum
FROM kunde AS k
LEFT OUTER JOIN bestellung AS b
ON k.kunden_nr = b.kunden_nr;
Dabei werden die beiden Spalten bestell_nr und bestelldatum für Kunden ohne
Bestellung mit Nullmarken aufgefüllt.
name bestell_nr bestelldatum
============================== =========== ============
Voss, Hans (NULL) (NULL)
Stein, Peter 151 2000-04-28
Berger, Uwe (NULL) (NULL)
Randers, Nis 152 2000-04-30
Randers, Nis 154 2000-05-15
Andresen, Ute (NULL) (NULL)
Stuff, Werner 153 2000-05-12
Staack, Hannes (NULL) (NULL)
Wenden wir auf dasselbe Tabellenpaar den RIGHT OUTER Join an, sieht das Resultat
anders aus:
SELECT name, bestell_nr, bestelldatum
FROM kunde RIGHT OUTER JOIN bestellung
ON kunde.kunden_nr = bestellung.kunden_nr;
name bestell_nr bestelldatum
============================== =========== ============
Stein, Peter 151 2000-04-28
Randers, Nis 152 2000-04-30
Stuff, Werner 153 2000-05-12
Randers, Nis 154 2000-05-15
Es erscheinen nur die vorhandenen Bestellungen mit den zugehörigen Kunden.
Die rechte Variante des äußeren Verbundes erbringt in diesem Fall also dasselbe
Resultat wie der innere Verbund. Das liegt daran, dass es wegen der referenziellen
Integritätsbedingung » FOREIGN KEY kunden_nr REFERENCES kunde «, die wir beim
Erzeugen der Tabelle bestellung angewandt hatten, keine Bestellungen ohne zuge-
hörigen Kunden geben kann.
Search WWH ::




Custom Search