Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Ergebnisse einer UNION-Abfrage in MS Access programmgesteuert sortieren?
Sortierte Ergebnisse in MS Access UNION-Abfragen meistern
Das Kombinieren von Daten aus mehreren Tabellen mithilfe einer UNION
-Abfrage in MS Access stellt beim Sortieren der endgültigen Ausgabe oft eine Herausforderung dar. Ein naiver Ansatz wie dieser:
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
erzeugt nicht das gewünschte sortierte Ergebnis innerhalb der MS Access Jet-Datenbank-Engine.
Die Lösung liegt in der strategischen Platzierung der ORDER BY
-Klausel. Anstatt es auf die gesamte UNION
-Abfrage anzuwenden, wenden Sie es auf jede einzelne SELECT
-Anweisung innerhalb der Union an. Dies wird durch die Erstellung von Unterabfragen erreicht:
<code class="language-sql">SELECT * FROM ( SELECT table1.field1 FROM table1 ORDER BY table1.field1 ) AS DUMMY_ALIAS1 UNION ALL SELECT * FROM ( SELECT table2.field1 FROM table2 ORDER BY table2.field1 ) AS DUMMY_ALIAS2</code>
Diese überarbeitete Abfrage verwendet zwei Unterabfragen, jede mit ihrer eigenen ORDER BY
-Klausel, um sicherzustellen, dass jeder Datensatz unabhängig bevor mit UNION ALL
kombiniert wird. Die Klauseln AS DUMMY_ALIAS1
und AS DUMMY_ALIAS2
stellen Aliase für die Unterabfragen bereit, die erforderlich sind, damit dieser Ansatz in MS Access ordnungsgemäß funktioniert. Die resultierende Vereinigung präsentiert dann die zusammengeführten, sortierten Daten. Beachten Sie die Verwendung von UNION ALL
, das alle Zeilen einschließt, im Gegensatz zu UNION
, das Duplikate entfernt.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ergebnisse einer UNION-Abfrage in MS Access programmgesteuert sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!