Ergebnisse aus kombinierten SELECT- und UNION-Abfragen sortieren
Das Kombinieren mehrerer SELECT
-Abfragen mit UNION
stellt eine häufige Herausforderung dar: Wie soll der resultierende Datensatz sortiert werden? Lassen Sie uns dieses Problem und seine Lösung untersuchen.
Die Herausforderung
Wenn Sie Daten aus verschiedenen Tabellen abrufen oder mehrere SELECT
-Anweisungen verwenden, die durch UNION
verbunden sind, kann es schwierig sein, eine bestimmte Spaltensortierreihenfolge zu erreichen.
Ausführliche Erklärung
Stellen Sie sich dieses Szenario vor:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20;</code>
Diese Abfrage wählt Daten aus zwei unterschiedlichen Gruppen innerhalb der Tabelle Student
aus. Eine einfache ORDER BY name
-Klausel in einer der beiden SELECT
-Anweisungen sortiert die kombinierten Ergebnisse jedoch nicht korrekt.
Die Lösung
Der richtige Ansatz besteht darin, die ORDER BY
-Klausel nach der UNION
-Anweisung anzuwenden. Die folgende Abfrage demonstriert die richtige Methode:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20 ORDER BY name;</code>
Dadurch wird sichergestellt, dass die ORDER BY
-Klausel auf den vollständigen Datensatz angewendet wird, der durch die UNION
-Operation erstellt wurde, und so die gewünschte sortierte Ausgabe gewährleistet.
Das obige ist der detaillierte Inhalt vonWie ordne ich Ergebnisse aus mehreren SELECT-Abfragen in Kombination mit UNION an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!