Diskussion:Einführung in SQL: Arbeiten mit JOIN

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Join mit Where-Klausel[Bearbeiten]

Im Text seht, dass es nicht so schön sei, die Bedingung in den Join-Ausdruck zu schreiben. Meiner Meinung nach ist je nach dem Wo die Bedingung platziert wird, eine unterschiedliche Aussage damit verbunden. Schreibe ich die Bedingung als TEil vom JOIN on ... - heißt das, die zu joinende Tabelle wird VOR dem Join gefiltert. Schreibe ich die Bedingung als WHERE-Klause, wird das Join-Ergebnis gefiltert. Schön wäre, wenn das ein SQL-Profi mal verifizieren und ggf. weiter erklären würde, denn 100%ig sicher bin ich mir auch nicht ;-) 212.34.73.12 12:16, 24. Nov. 2023 (CET)Beantworten[Beantworten]

Danke für den Hinweis. Als ich diesen Text (vor über zehn Jahren) schrieb, konnte ich mich als „Profi“ in der Praxis ansehen; seit über fünf Jahren habe ich nichts mehr mit SQL zu tun, also halte ich mich lieber zurück. Hier dürften aber die allgemeinen Aussagen zu einem DBMS zutreffen: Bevor ein Ausdruck ausgewertet wird, wird er analysiert und daraus eine Reihenfolge der Teilschritte erstellt.

Für die Praxis stehen im Text weitere Anmerkungen:

  • „nicht so schön, weil Verknüpfungsbedingung und Auswahlbedingung vermischt werden“ (also eine Begründung)
  • Die Haupttabelle „sollte diejenige mit den größten Einschränkungen sein; das beschleunigt die Abfrage besonders stark.“

Wenn dir ein Beispiel über den Weg läuft mit unterschiedlichem Ergebnis (Auswahlbedingung als Teil des JOIN oder separat als WHERE), dann immer her damit. Das wäre ein Grund für eine Erweiterung des Textes. -- Jürgen 16:25, 24. Nov. 2023 (CET)Beantworten[Beantworten]