ホームページ > データベース > mysql チュートリアル > SQL UNION クエリの結果を適切に並べ替えるにはどうすればよいですか?

SQL UNION クエリの結果を適切に並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-09 22:33:44
オリジナル
761 人が閲覧しました

How to Properly Order Results from a SQL UNION Query?

SQL UNION クエリの並べ替え

SQL クエリを使用して、UNION 演算子を使用して複数のテーブルのデータを結合する場合、多くの場合、結果を並べ替える必要があります。ただし、クエリの最後に ORDER BY 句を追加するだけではエラーが発生する可能性があります。

次の例を考えてみましょう:

SELECT table1.field1 FROM table1 ORDER BY table1.field1
UNION
SELECT table2.field1 FROM table2 ORDER BY table2.field1
ログイン後にコピー

このクエリは UNION 操作の結果を並べ替えようとしますが、個々の SELECT ステートメントを囲む括弧の外側に ORDER BY 句を使用することはできないため、例外がスローされます。

UNION クエリを正しく順序付けするには、すべての SELECT ステートメントに ORDER BY 句を含める必要があります。これにより、個々のデータ セットが結合される前に確実に並べ替えられます。結果を正しく並べ替えるために上記のクエリを書き直す方法は次のとおりです:

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
ログイン後にコピー

このアプローチでは、UNION ALL を使用して結合される前に、個々のデータセットが括弧内で並べ替えられます。結合された結果は、最も外側の SELECT ステートメントの ORDER BY 句の要件に従って順序付けされます。

以上がSQL UNION クエリの結果を適切に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート