diff --git a/documents/musterloesung-db-2012-09-24/d2c1.2.sql b/documents/musterloesung-db-2012-09-24/d2c1.2.sql new file mode 100644 index 0000000..0ac52f6 --- /dev/null +++ b/documents/musterloesung-db-2012-09-24/d2c1.2.sql @@ -0,0 +1,5 @@ +SELECT f1.person2, f2.person2 + FROM FriendshipSymmetric f1 + JOIN FriendshipSymmetric f2 ON f1.person1 = f2.person1 + WHERE f1.person2 != f2.person2 + AND f1.person1 = ; diff --git a/documents/musterloesung-db-2012-09-24/d2c1.sql b/documents/musterloesung-db-2012-09-24/d2c1.sql index 4c228ea..b0bc916 100644 --- a/documents/musterloesung-db-2012-09-24/d2c1.sql +++ b/documents/musterloesung-db-2012-09-24/d2c1.sql @@ -8,29 +8,3 @@ 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" diff --git a/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.pdf b/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.pdf index 0dc704d..8eeee59 100644 Binary files a/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.pdf and b/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.pdf differ diff --git a/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.tex b/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.tex index 20df78d..ac95850 100644 --- a/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.tex +++ b/documents/musterloesung-db-2012-09-24/musterloesung-db-2012-09-24.tex @@ -131,6 +131,33 @@ ergibt die Zerlegung \subsection{Teilaufgabe c)} \subsubsection{Version A} \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d2c1.sql} + +\paragraph{Weitere Erklärungen:} +Ansatz: +\begin{enumerate} + \item Suche alle Personenpaare, die beide als Freund haben (wobei + nur ungleiche paare gesucht sind, da man nicht mit sich selbst befreundet + sein kann) + \item Prüfe über die Menge dieser Paare, welche noch nicht befreundet sind +\end{enumerate} + +Dazu: +\inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d2c1.2.sql} + +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: +\begin{verbatim} +"1","5" +"2","5" +"3","5" +"5","1" +"5","2" +"5","3" +\end{verbatim} \subsubsection{Version B} \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d2c2.sql}