Heim > Datenbank > MySQL-Tutorial > Wie ordne ich die Ergebnisse einer SQL UNION-Abfrage richtig an?

Wie ordne ich die Ergebnisse einer SQL UNION-Abfrage richtig an?

Susan Sarandon
Freigeben: 2025-01-09 22:33:44
Original
732 Leute haben es durchsucht

How to Properly Order Results from a SQL UNION Query?

SQL UNION-Abfragesortierung

Wenn Sie SQL-Abfragen verwenden, um Daten aus mehreren Tabellen mithilfe des UNION-Operators zu kombinieren, müssen Sie die Ergebnisse häufig sortieren. Das einfache Hinzufügen einer ORDER BY-Klausel am Ende der Abfrage kann jedoch zu Fehlern führen.

Betrachten Sie das folgende Beispiel:

<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1
UNION
SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
Nach dem Login kopieren

Diese Abfrage versucht, die Ergebnisse einer UNION-Operation zu sortieren, löst jedoch eine Ausnahme aus, da die ORDER BY-Klausel außerhalb der Klammern, die die einzelnen SELECT-Anweisungen umgeben, nicht zulässig ist.

Um eine UNION-Abfrage korrekt anzuordnen, müssen Sie in jede SELECT-Anweisung eine ORDER BY-Klausel einfügen. Dadurch wird sichergestellt, dass die einzelnen Datensätze vor der Zusammenführung sortiert werden. So schreiben Sie die obige Abfrage um, um die Ergebnisse korrekt zu ordnen:

<code class="language-sql">SELECT * FROM
(
  SELECT table1.field1 FROM table1 ORDER BY table1.field1
) DUMMY_ALIAS1

UNION ALL

SELECT * FROM
(
  SELECT table2.field1 FROM table2 ORDER BY table2.field1
) DUMMY_ALIAS2</code>
Nach dem Login kopieren

Bei diesem Ansatz werden die einzelnen Datensätze in Klammern sortiert, bevor sie mit UNION ALL kombiniert werden. Die kombinierten Ergebnisse werden dann gemäß den Anforderungen der ORDER BY-Klausel in der äußersten SELECT-Anweisung geordnet.

Das obige ist der detaillierte Inhalt vonWie ordne ich die Ergebnisse einer SQL UNION-Abfrage richtig an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage