ホームページ >データベース >mysql チュートリアル >UNION と組み合わせた複数の SELECT クエリの結果を並べ替える方法
SELECT クエリと UNION クエリを組み合わせた結果の並べ替え
SELECT
を使用して複数の UNION
クエリを結合すると、結果のデータセットをどのように並べ替えるかという共通の課題が生じます。 この問題とその解決策を見てみましょう。
チャレンジ
さまざまなテーブルからデータを取得する場合、または SELECT
で結合された複数の UNION
ステートメントを使用する場合、特定の列の並べ替え順序を達成するのは難しい場合があります。
詳しい説明
次のシナリオについて考えてみましょう:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20;</code>
このクエリは、Student
テーブル内の 2 つの異なるグループからデータを選択します。 ただし、どちらかの ORDER BY name
ステートメント内に単純な SELECT
句を配置しても、結合された結果は正しく並べ替えられません。
解決策
正しいアプローチは、ORDER BY
文の後に UNION
句を適用することです。 次のクエリは適切な方法を示しています:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20 ORDER BY name;</code>
これにより、ORDER BY
句が UNION
操作によって生成された完全なデータセットに対して動作し、目的の並べ替えられた出力が保証されます。
以上がUNION と組み合わせた複数の SELECT クエリの結果を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。