ホームページ >データベース >mysql チュートリアル >エラーを避けるために UNION クエリで ORDER BY を正しく使用するにはどうすればよいですか?

エラーを避けるために UNION クエリで ORDER BY を正しく使用するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-09 22:26:45251ブラウズ

How Can I Correctly Use ORDER BY in UNION Queries to Avoid Errors?

UNION クエリで Order By

を実装する

データベース プログラミングでは、UNION クエリはさまざまなテーブルまたはサブクエリの結果を結合します。ただし、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>

このクエリは、特に MS Access Jet データベース エンジンを使用している場合に失敗します。解決策は、各サブクエリを独自の 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>

ORDER BY ステートメントは、サブクエリをかっこで囲み、エイリアス (DUMMY_ALIAS1 および DUMMY_ALIAS2) を割り当てることで、各サブクエリに個別に適用されます。これにより、エラーが発生することなく、結合された結果が正しい順序で並べられるようになります。

以上がエラーを避けるために UNION クエリで ORDER BY を正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。