Frage

Ich bin voll und ganz bewusst, dass Set Division durch eine Reihe von anderen Operationen durchgeführt werden kann, so meine Frage ist:

Gibt es einen Befehl für Set Division in SQL?

War es hilfreich?

Lösung

http://vadimtropashko.files.wordpress.com/2007/02/ ch3.pdf

Von Seite 32:

  

Relational Abteilung ist kein grundsätzlicher Betreiber. Es kann in Bezug auf die Projektion, cartesianischen Produkt und setzen Differenz ausgedrückt werden.

Also, nein. :)

Andere Tipps

Verwandte Frage: Datenbank-Design für Tagging

Und relevanter Teil der Antwort ist dieser Artikel

kurz gesagt also, nein, gibt es keine feste Einteilung in SQL.

Hier ist eine schöne Erklärung relationale Algebra-Syntax .

Bei Tabellen sailors, boats und reserves (Beispiele aus Ramakrishnan & Gehrke „Datenbank-Management-Systeme“) Sie können Segler berechnen, die alle Boote mit der folgenden Abfrage reserviert haben:

SELECT name FROM sailors
WHERE Sid NOT IN (
    -- A sailor is disqualified if by attaching a boat,
    -- we obtain a tuple <sailor, boat> that is not in reserves
    SELECT s.Sid
    FROM sailors s, boats b
    WHERE (s.Sid, b.Bid) NOT IN (
        SELECT Sid, Bid FROM reserves
    )
);

-- Alternatively:
SELECT name FROM sailors s
WHERE NOT EXISTS (
    -- Not reserved boats
    (SELECT bid FROM boats)
    EXCEPT
    (SELECT r.bid FROM reserves r
    WHERE r.sid = s.sid)
);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top