Priorität
Klären Sie zunächst zwei Konzepte:
Beim Left Join besteht der Unterschied zwischen den beiden darin:
prüfen Tabelle 1: Tabelle1
Tabelle 2: table2
Wähle a.id, a.No, b.name aus Tabelle1 a links, verbinde Tabelle2 b mit (a.No = b.No und b.name='aaa'); Wähle a.id, a.No, b.name aus Tabelle1 a links, verbinde Tabelle2 b auf (a.No = b.No), wobei b.name = „aaa“; Erster Ergebnissatz: |id |Nr. |Name| |---|---|---| |1 |n1 |aaa| |2 |n2 |(Null)| |3 |n3 |(Null)| Zweiter Ergebnissatz: |id |Nr. |Name| |---|---|---| |1 |n1 |aaa| Der Ausführungsprozess der ersten SQL-Anweisung ist: Suchen Sie zuerst die Zeile in Tabelle b, deren Name aaa ist (on (a.No = b.No and b.name='aaa')). Suchen Sie dann die Daten der Tabelle A (auch wenn sie nicht den Regeln der Tabelle B entsprechen), generieren Sie eine temporäre Tabelle und geben Sie sie an den Benutzer zurück. Der Ausführungsprozess der zweiten SQL-Anweisung ist wie folgt: Zuerst wird eine temporäre Tabelle generiert, dann wird die Where-Anweisung ausgeführt, um den Ergebnissatz zu filtern, in dem b.name='aaa' nicht wahr ist, und schließlich wird das Ergebnis an den Benutzer zurückgegeben. Da „on“ zuerst die Zeilen herausfiltert, die die Bedingungen nicht erfüllen, und dann andere Vorgänge ausführt, liegt es auf der Hand, dass „on“ am schnellsten ist. Bei der Abfrage mehrerer Tabellen wird „on“ früher wirksam als „where“. Dabei werden mehrere Tabellen zunächst anhand der Join-Bedingungen zwischen den Tabellen zu einer temporären Tabelle zusammengefasst, diese dann mit where gefiltert und anschließend berechnet. Nach der Berechnung wird erneut mit having gefiltert. Daraus ist ersichtlich, dass wir zunächst verstehen müssen, wann die Bedingung wirksam werden soll, und dann entscheiden müssen, wo sie platziert werden soll, damit die Filterbedingungen die richtige Rolle spielen. Wenn für die Assoziationsoperation der an JOIN beteiligten Tabellen die Zeilen, die die Verbindungsbedingungen nicht erfüllen, innerhalb unseres Abfragebereichs liegen müssen, müssen wir die Verbindungsbedingungen nach ON und nicht nach WHERE setzen. Wenn wir die Verbindungsbedingungen nach WHERE setzen, haben alle Operationen LEFT, RIGHT usw. keine Wirkung. In diesem Fall ist die Wirkung genau dieselbe wie bei einer INNER-Verbindung. Bedingungen, die sich nicht auf die Zeilenauswahl auswirken, werden einfach nach ON oder WHERE eingefügt. Denken Sie daran: Alle Verbindungsbedingungen müssen nach „ON“ angegeben werden, andernfalls werden alle vorherigen Links- und Rechtszuordnungen nur als Dekoration verwendet und haben keine Wirkung. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Manuelles Implementieren des Eingabefelds für den js-SMS-Bestätigungscode
Inhaltsverzeichnis 1. Sichern Sie die alten MySQL...
Es gibt viele Tags in XHTML, aber nur wenige werd...
Ich verwende Navicat als Datenbanktool. Andere si...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Öffentliche kostenlose STUN-Server Wenn das SIP-T...
0x00 Einführung WordPress ist das beliebteste CMS...
DOCTYPE-DEKLARATION: Oben auf jeder Seite, die Sie...
Inhaltsverzeichnis Beschreibung der Installations...
CentOS8 wurde vor ein paar Tagen veröffentlicht. ...
Vorwort: Im vorherigen Artikel wurden mehrere all...
Bei der tatsächlichen Arbeit oder bei Interviews ...
Hexo bindet einen benutzerdefinierten Domänenname...
Sag es im Voraus Aus einer Laune heraus möchte ic...
Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...
Frage Frage 1: Wie kann der Leistungsverlust beho...