Heim >Datenbank >MySQL-Tutorial >Wie ordne ich die Ergebnisse einer SQL UNION richtig an?
UNION und Sortieren in SQL
In SQL ermöglicht uns der UNION-Operator, mehrere SELECT-Anweisungen in einer einzigen Ergebnismenge zu kombinieren. Das Sortieren kombinierter Daten kann jedoch schwierig sein, wenn jede SELECT-Anweisung möglicherweise unterschiedliche Daten zurückgibt.
Betrachten Sie die folgende Abfrage, die Daten aus der Student-Tabelle basierend auf zwei Kriterien abruft:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age > 20 UNION SELECT id, name, age FROM Student WHERE Name LIKE "%a%";</code>
Wir möchten die kombinierte Ergebnismenge nach der Namensspalte sortieren. Leider funktioniert die folgende Abfrage nicht wie erwartet:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age > 20 ORDER BY name;</code>
In dieser Abfrage wird die ORDER BY-Klausel auf die kombinierten Ergebnisse der WHERE-Bedingungen angewendet und nicht auf die vollständige Ergebnismenge der UNION. Daher werden die Daten nicht sortiert.
Um die kombinierte Ergebnismenge nach Namen zu sortieren, verschieben Sie einfach die ORDER BY-Klausel außerhalb des UNION-Operators:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age > 20 UNION SELECT id, name, age FROM Student WHERE Name LIKE "%a%" ORDER BY name;</code>
In dieser modifizierten Abfrage wird die ORDER BY-Klausel auf den gesamten Ergebnissatz angewendet, um sicherzustellen, dass die kombinierten Daten korrekt sortiert werden.
Das obige ist der detaillierte Inhalt vonWie ordne ich die Ergebnisse einer SQL UNION richtig an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!