Es gibt keine „with as“-Anweisung in Versionen von mysql5.7 und niedriger, aber es gibt eine „with as“-Anweisung in Versionen von mysql8.0 und höher. mysql5.7 unterstützt diese Anweisung nicht, kann aber sein implementiert durch Erstellen einer temporären Tabelle Mit dem gleichen Effekt wird diese Anweisung für Unterabfragen nach mysql8.0 unterstützt.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
Verfügt MySQL über eine with as-Anweisung
WITH AS-Unterabfrageteil [nicht unterstützt von mysql5.7 und niedriger, unterstützt von mysql8.0 und sqlserver]
Der Vorteil des Unterabfrageteils besteht darin, dass es sich um einen handelt Teilabfrage. Es ist besser, drei Tabellen zu haben. Die Verbindung erscheint mehrmals in einer Anweisung
Ein einzelner Unterabfrageteil
with a as (select * from Student a inner join Course b ON a.Id=b.StudentId )select * from a
Analyse: Auf diese Weise fragt jede Abfrage a in dieser Anweisung den gemeinsamen Abfragesatz der Studenten- und Kurstabellen ab
Syntax mehrerer Abfrageteile
with a as (select * from Student), b as (select * from Course) select * from a inner join b on a.Id=b.StudentId
Wenn mehrere Unterabfragen in einer gesamten Abfrage die Ergebnisse derselben Unterabfrage verwenden müssen, können Sie mit as die gemeinsam genutzte Unterabfrage extrahieren und einen Alias hinzufügen. Die nachfolgenden Abfrageanweisungen können direkt verwendet werden, was bei der Optimierung einer großen Anzahl komplexer SQL-Anweisungen eine sehr gute Rolle spielt.
Hinweis:
entspricht einer temporären Tabelle, wird jedoch im Gegensatz zu einer Ansicht nicht gespeichert und muss in Verbindung mit „select“ verwendet werden.
Vor derselben Auswahl können mehrere temporäre Tabellen stehen. Schreiben Sie einfach ein „with“ und trennen Sie sie durch Kommas.
With-Klausel sollte in Klammern eingeschlossen werden.
Um die Verwendung von with zusammenzufassen: Es ähnelt dem Erstellen einer temporären Tabelle.
Empfohlenes Lernen:MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonVerfügt MySQL über eine with as-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!