Wie organisiert man am besten die Inner Joins-Anweisung (select)?

8

Nehmen wir an, ich habe drei Tabellen, jede bezieht sich auf eine andere,

Wenn ich von jeder Tabelle eine Spalte bekommen muss, macht es einen Unterschied, wie man organisiert die (inneren verbindet) ??

%Vor%

Mit anderen Worten, kann ich (table2) nach (From) ??

setzen %Vor%     
Nour Sabouny 10.10.2010, 09:15
quelle

2 Antworten

14

Bei den meisten Anfragen spielt die Reihenfolge keine Rolle.

  • Ein INNER JOIN ist sowohl assoziativ als auch kommutativ, so dass die Reihenfolge der Tabellen keine Rolle spielt
  • SQL ist deklarativ. Das heißt, wie Sie die Abfrage definieren, ist nicht, wie der Optimierer es ausarbeitet. Es tut nicht Zeile für Zeile, wie Sie es geschrieben haben.

Das sagte ...

  • OUTER JOINs sind weder assoziativ noch kommutativ
  • Bei komplexen Abfragen wird der Optimierer "am besten raten" und nicht alle Möglichkeiten durchgehen, die " kostet " zu viel. Tabellenreihenfolge kann hier eine Rolle spielen
gbn 10.10.2010, 09:35
quelle
6

Die Operation inner join hat von links nach rechts Assoziativität. Es spielt keine Rolle, in welcher Reihenfolge Sie die Tabellen schreiben, solange Sie nicht auf Tabellen in der ON-Bedingung verweisen, bevor sie verbunden wurden.

Wenn die Anweisung ausgeführt wird, ermittelt die Datenbank-Engine die beste Reihenfolge für die Ausführung der Verknüpfung und dies kann sich von der Reihenfolge unterscheiden, in der sie in der SQL-Abfrage angezeigt werden.

    
Mark Byers 10.10.2010 09:22
quelle

Tags und Links