SQL Abfrage Lieber Joins oder Unterabfragen

Dr Franke Ghostwriter
SQL Abfrage: Lieber Joins oder Unterabfragen

Ich übe gerade die SQL Abfragen. Leider steig ich bei den Unterabfragen nicht so durch und mach das über die Verknüpfung der Schlüssel. Theoretisch kommt das ja zum selben Ergennis. Die Frage ist nur: ist das auch in der Klausur zulässig?
 
"Theoretisch" kommt dassselbe raus. In der Praxis hatten wir aber schon Fälle, wo ein Sub-Select um Klassen schneller war als ein vergleichbarer Join - oder umgekehrt. Es kann definitiv nicht der Fall sein, dass wir in der Klausur selbstständig zu entscheiden haben, wann was der Fall ist: Die Ursachen sind eher was datenbank-internes und selbst für anerkannte SQL-Gurus oft ein Geheimnis. Kleiner Anhaltspunkt: Wenn ein Subselect gleich mal 90% der in Frage kommenden Datensätze ausschließt, hat man hier prinzipiell einen Vorteil (mein Rekord: 0.0002 statt 15 Sekunden!). Zumindest gilt dies bei MySQL - bei Oracle hab ich mir sagen lassen, solle es anders sein. Und mir sind auch schon Fälle vorgekommen, wo bei MySQL ein Join erheblich flottere Ergebnisse lieferte. Gut, ich bin kein DB-Experte, und hab auch nicht ständig so einen zur Hand, so dass "gute" SQL-Statements auch immer eine Sache von Versuch&Irrtum sind.

Für die Klausur würd ich mich aber doch lieber auf die Unterabfragen versteifen (soo schwer sind die auch gar nicht), derweil ein fieswollender Korrekteur durchaus meine könnte, dass das, was im Kurs steht, prinzipiell richtiger sein müsste als ein anderer Lösungsansatz, der gleichfalls das richtige Ergebnis liefert.
 
Oben