浏览代码

Added further explanation

Stefan Koch 12 年之前
父节点
当前提交
c1d93b86a1
共有 1 个文件被更改,包括 26 次插入0 次删除
  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 f1.person1 = <id>
     AND p3.person1 IS NULL 
     AND p3.person1 IS NULL 
     AND p3.person2 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"