ホームページ >データベース >mysql チュートリアル >MS Access で UNION クエリの結果をプログラムで並べ替えるにはどうすればよいですか?
MS Access UNION クエリでソートされた結果をマスターする
MS Access で UNION
クエリを使用して複数のテーブルのデータを結合すると、最終出力を並べ替えようとするときに問題が発生することがよくあります。 次のような素朴なアプローチ:
<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
ステートメントに適用します。 これは、サブクエリを作成することで実現されます:
<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>
この改訂されたクエリでは、それぞれ独自の ORDER BY
句を持つ 2 つのサブクエリが使用されており、各データセットが と結合される前に 独立して並べ替えられるようにします。 UNION ALL
句と AS DUMMY_ALIAS1
句は、このアプローチが MS Access で正しく機能するために必要なサブクエリのエイリアスを提供します。 結果として得られる結合は、マージされ、並べ替えられたデータを表します。 重複を削除する AS DUMMY_ALIAS2
とは異なり、すべての行を含む UNION ALL
の使用に注意してください。UNION
以上がMS Access で UNION クエリの結果をプログラムで並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。