
Order By
in der UNION-Abfrage implementierenBei der Datenbankprogrammierung kombiniert eine UNION-Abfrage Ergebnisse aus verschiedenen Tabellen oder Unterabfragen. Die direkte Verwendung von ORDER BY in einer UNION-Anweisung kann jedoch zu Ausnahmen führen, wenn Daten aus mehreren Tabellen extrahiert werden und die Ergebnisse sortiert werden müssen. Wie im folgenden Beispiel gezeigt:
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
Diese Abfrage schlägt fehl, insbesondere wenn die MS Access Jet-Datenbank-Engine verwendet wird. Die Lösung besteht darin, jede Unterabfrage in eine eigene ORDER BY-Klausel einzuschließen:
<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>
Die ORDER BY-Anweisung wird auf jede Unterabfrage einzeln angewendet, indem die Unterabfrage in Klammern eingeschlossen und ihr ein Alias zugewiesen wird (DUMMY_ALIAS1 und DUMMY_ALIAS2). Dadurch wird die korrekte Reihenfolge der kombinierten Ergebnisse sichergestellt, ohne dass es zu Fehlern kommt.
Das obige ist der detaillierte Inhalt vonWie kann ich ORDER BY in UNION-Abfragen korrekt verwenden, um Fehler zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Der Unterschied zwischen Tastendruck und Tastendruck
Was soll ich tun, wenn mein Laufwerk C rot wird?
So öffnen Sie die Registrierung
Zusammengesetzte Verwendung
Welche Taste drücken Sie zur Wiederherstellung, wenn Ihr Computer abstürzt?
So implementieren Sie einen Zeilenumbruch in der Warnung
Dateinamen unter Linux ändern
So reparieren Sie das Win7-System, wenn es beschädigt ist und nicht gestartet werden kann