Databases Reference
In-Depth Information
WHERE Tier.Gnr=3
Das Ergebnis der Anfrage ist:
GATTUNG
-------
Hase
Schaf
Die beiden bisher vorgestellten Operationen sind symmetrisch,
d. h. man kann die Positionen der Teilanfragen vertauschen.
Dies ist bei der Mengendifferenz nicht mehr der Fall. Diese
wird nach Standard mit EXCEPT berechnet, es gibt allerdings
Datenbank-Managementsysteme, die stattdessen das Schlüs-
selwort MINUS nutzen. Die folgende Anfrage liefert die Gattun-
gen, die im Gehege mit der Nummer 2, aber nicht im Gehege
mit der Nummer 3 vorkommen.
SELECT Tier.Gattung
FROM Tier
WHERE Tier.Gnr=2
EXCEPT
SELECT Tier.Gattung
FROM Tier
WHERE Tier.Gnr=3
Das Ergebnis enthält keine Zeilen. Die Anfrage mit dem glei-
chen Ergebnis ohne Mengenoperation kann mit dem bisherigen
Wissen nicht formuliert werden. Eine alternative Formulierung
steht im Unterkapitel „9.3 Teilanfragen in der WHERE-
Bedingung“. Ein alternativer Ansatz, der nicht zum Erfolg
führt, ist die Anfrage
SELECT DISTINCT T1.Gattung
FROM Tier T1, Tier T2
WHERE T1.Gnr=2
AND T2.Gnr=3
AND T1.Gattung<>T2.Gattung
Die Anfrage liefert als Ergebnis
Mengendifferenz
mit EXCEPT
Keine einfache
Alternative zu
EXCEPT
GATTUNG
-------
Hase
Schaf
was nicht dem vorherigen Ergebnis entspricht. Das Problem ist,
dass hier nicht zwei Zeilen betrachtet werden müssen, sondern
die Kombination einer Zeile mit einem Eintrag mit der
Gehegenummer 2 und allen Zeilen, die zur Gehegenummer 3
gehören. Der Vergleich mit einer unbestimmten Anzahl von
193
Search WWH ::




Custom Search