diff --git a/documents/musterloesung-db-2012-09-24/d2c2.sql b/documents/musterloesung-db-2012-09-24/d2c2.sql index 5a944df..8513bf4 100644 --- a/documents/musterloesung-db-2012-09-24/d2c2.sql +++ b/documents/musterloesung-db-2012-09-24/d2c2.sql @@ -1,13 +1,34 @@ SELECT f1.person2, f2.person2 FROM ( - SELECT person2 FROM FriendshipSymmetric WHERE person1 = + SELECT * FROM FriendshipSymmetric WHERE person1 = ) f1 JOIN ON ( - SELECT person2 FROM FriendshipSymmetric WHERE person1 = + SELECT * FROM FriendshipSymmetric WHERE person1 = ) f2 EXCEPT ( SELECT * FROM FriendshipSymmetric ) WHERE f1.person2 != f2.person2 + + +Ohne EXCEPT (da ich mir nicht sicher bin, ob es nun SQL-Standard +ist oder nicht, z.B. SQLite kenn kein EXCEPT, auf einer Übersicht +stand es aber bei SQL89 angehakt dabei). +Hinweis: NOT EXISTS ist True, gdw die Unterabfrage genau 0 +Zeilen enthält. + +SELECT f1.person2, f2.person2 +FROM ( + SELECT * FROM FriendshipSymmetric WHERE person1 = 4 +) f1 +JOIN +( + SELECT * FROM FriendshipSymmetric WHERE person1 = 4 +) f2 ON f1.person1 = f2.person1 +WHERE f1.person2 != f2.person2 +AND NOT EXISTS +( + SELECT * FROM FriendshipSymmetric f WHERE f.person1 = f1.person2 AND f.person2 = f2.person2 +)