diff --git a/documents/musterloesung-db-2012-09-24/d2c1.sql b/documents/musterloesung-db-2012-09-24/d2c1.sql index b0bc916..4c228ea 100644 --- a/documents/musterloesung-db-2012-09-24/d2c1.sql +++ b/documents/musterloesung-db-2012-09-24/d2c1.sql @@ -8,3 +8,29 @@ WHERE f1.person2 != f2.person2 AND f1.person1 = AND p3.person1 IS NULL AND p3.person2 IS NULL + + +Weitere Erklärungen: +Ansatz: +1. Suche alle Personenpaare, die beide 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 = ; +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"