mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-24 22:08:04 +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:
parent
2ccc6cb416
commit
fe79dd4081
1 changed files with 23 additions and 2 deletions
|
@ -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
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue