Ich bin sehr neu in SQL und ich wollte etwas Hilfe beim Schreiben dieser SQL-Abfrage.
Ich habe eine Filmtabelle wie folgt:
%Vor%Nun möchte ich alle Paare von Schauspielern und Regisseuren ausdrucken, die nicht miteinander gearbeitet haben - zB in diesem Fall wird es (a, BB) und (d, AA) ausgedruckt.
Du kannst es so machen:
%Vor% Die Idee ist, alle möglichen Paare von Schauspielern und Regisseuren zu produzieren (das kartesische Produkt tritt in die Mitte der Anfrage) und filtert dann seine Ergebnisse, um durch einen Film verbundene Paare auszuschließen (die NOT EXISTS
Bedingung).
Hier ist eine Demo auf sqlfiddle.
Ich würde dies tun, indem ich zuerst alle Paare von Schauspielern und Regisseuren mit einem Cross-Join (dh kartesisches Produkt ) entwickeln würde, und dann filtern Sie diese Liste mit der Tabelle der beobachteten Beziehungen.
%Vor%SQLFiddle Demo (Das Schema wurde im Grunde von derblinkenlicht Fidel gespült, seit er mich dazu geschlagen hat).