mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-25 06:18:05 +02:00
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
34 lines
849 B
SQL
34 lines
849 B
SQL
SELECT f1.person2, f2.person2
|
|
FROM (
|
|
SELECT * FROM FriendshipSymmetric WHERE person1 = <id>
|
|
) f1
|
|
JOIN ON
|
|
(
|
|
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
|
|
)
|