Browse Source

Added further explanation

Stefan Koch 12 years ago
parent
commit
c1d93b86a1
1 changed files with 26 additions and 0 deletions
  1. 26 0
      documents/musterloesung-db-2012-09-24/d2c1.sql

+ 26 - 0
documents/musterloesung-db-2012-09-24/d2c1.sql

@@ -8,3 +8,29 @@ WHERE f1.person2 != f2.person2
     AND f1.person1 = <id>
     AND p3.person1 IS NULL 
     AND p3.person2 IS NULL
+
+
+Weitere Erklärungen:
+Ansatz:
+1. Suche alle Personenpaare, die beide <id> als Freund haben (wobei
+   nur ungleiche paare gesucht sind, da man nicht mit sich selbst befreundet
+   sein kann)
+2. Prüfe über die Menge dieser Paare, welche noch nicht befreundet sind
+
+Dazu:
+1. SELECT f1.person2, f2.person2 FROM FriendshipSymmetric f1
+   JOIN FriendshipSymmetric f2 ON f1.person1 = f2.person1
+   WHERE f1.person2 != f2.person2
+   AND f1.person1 = <id>;
+2. Ein LEFT JOIN ergänzen, um zu ermitteln, welche Paare nicht tatsächlich
+   in FriendshipSymmetric stehen (diese werden NULL joinen). Daher nach NULL
+   selektieren
+
+
+Beispielhaftes Ergebnis für gegebene Situation und id=4:
+"1","5"
+"2","5"
+"3","5"
+"5","1"
+"5","2"
+"5","3"