Databases Reference
In-Depth Information
SELECT artikel_nr, bezeichnung, lagerplatz
FROM artikel
WHERE lagerplatz = 5
UNION
SELECT artikel_nr, bezeichnung, lagerplatz
FROM artikel
WHERE lagerplatz = 7;
artikel_nr bezeichnung lagerplatz
========== ==================== ==========
G001 Whisky 7
G002 Portwein 7
G003 Bier 7
L001 Ceylon-Tee 5
L002 China-Tee 5
Wir hätten diese Abfrage natürlich auch etwas einfacher mithilfe eines logischen
Kalküls formulieren können:
SELECT artikel_nr, bezeichnung, lagerplatz
FROM artikel
WHERE lagerplatz = 5 OR lagerplatz = 7
Diese Variante funktioniert aber nur, wenn die zu vereinigenden Mengen auf der-
selben Basistabelle beruhen.
Die folgende Anweisung zeigt, wie wir mithilfe von UNION und einer Unterabfrage
einen Outer Join formulieren können.
SELECT k1.kunden_nr, name, bestell_nr
FROM kunde k1, bestellung b1
WHERE k1.kunden_nr = b1.kunden_nr
UNION
SELECT kunden_nr, name, NULL
FROM kunde k2
WHERE NOT EXISTS
(SELECT *
FROM bestellung b2
WHERE b2.kunden_nr = k2.kunden_nr)
kunden_nr name bestell_nr
========= ============================== ==========
100 Voss, Hans (NULL)
101 Stein, Peter 151
102 Berger, Uwe (NULL)
103 Randers, Nis 152
103 Randers, Nis 154
105 Stuff, Werner 153
106 Staack, Hannes (NULL)
 
Search WWH ::




Custom Search