首頁 > 資料庫 > mysql教程 > 如何正確排序 SQL UNION 查詢的結果?

如何正確排序 SQL UNION 查詢的結果?

Susan Sarandon
發布: 2025-01-09 22:33:44
原創
677 人瀏覽過

How to Properly Order Results from a SQL UNION Query?

SQL UNION 查詢的排序

在使用 SQL 查詢透過 UNION 運算子組合多個表中的資料時,通常需要對結果進行排序。但是,簡單地在查詢末尾添加 ORDER BY 子句可能會導致錯誤。

考慮以下範例:

<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1
UNION
SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
登入後複製

此查詢嘗試對 UNION 操作的結果進行排序,但它會引發異常,因為 ORDER BY 子句不允許位於包含各個 SELECT 語句的括號之外。

要正確排序 UNION 查詢,需要在每個 SELECT 語句中包含 ORDER BY 子句。這確保了在組合各個資料集之前對它們進行排序。以下是重寫上述查詢以正確排序結果的方法:

<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>
登入後複製

透過這種方法,各個資料集在使用 UNION ALL 組合之前會在括號內進行排序。然後,依照最外層 SELECT 語句中 ORDER BY 子句的要求對組合結果進行排序。

以上是如何正確排序 SQL UNION 查詢的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板