2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-25 06:18:05 +02:00

Korrektur + Ergänzung

Korrektur: person1 wird vom Subquery auch benötigt wegen späterem WHERE-Vergleich
Ergänzung: SQLite konnte kein EXCEPT, daher hab ich es mit NOT EXISTS nachgebaut, siehe auch http://stackoverflow.com/questions/3831969/sqlite-delete-results-from-select-with-except
This commit is contained in:
Stefan Koch 2013-07-30 12:56:04 +02:00
parent 2ccc6cb416
commit fe79dd4081

View file

@ -1,13 +1,34 @@
SELECT f1.person2, f2.person2
FROM (
SELECT person2 FROM FriendshipSymmetric WHERE person1 = <id>
SELECT * FROM FriendshipSymmetric WHERE person1 = <id>
) f1
JOIN ON
(
SELECT person2 FROM FriendshipSymmetric WHERE person1 = <id>
SELECT * FROM FriendshipSymmetric WHERE person1 = <id>
) 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
)