使用 UNION 對多個 MS Access 表中的資料進行組合和排序
在較大的資料庫中,組合多個表中的資料是一項常見任務。 UNION
運算子提供了一種將不同表中的行合併到單一結果集中的方法。 然而,實作此組合資料的正確排序需要 MS Access 中的特定方法。
像這樣簡單的嘗試將會失敗:
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
MS Access Jet 資料庫引擎不允許在 ORDER BY
查詢中直接使用 UNION
子句。
解決方案:巢狀查詢與別名
解決方案涉及將每個單獨的 SELECT
語句嵌套在其自己的子查詢中,然後在每個子查詢中應用 ORDER BY
子句 。 這需要為每個子查詢分配一個別名:
<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>此方法允許對
和 table1
中的組合資料進行正確排序。 請注意 table2
的使用,它包括兩個查詢中的所有行,包括重複項,這與刪除重複項的 UNION ALL
不同。 根據您的需求選擇合適的 UNION
運算子。 此技術有效地支援使用 MS Access 中的 UNION
運算子對合併的資料進行排序。 UNION
以上是如何在 MS Access 中使用 UNION 對多個表中的資料進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!