この記事の例では、MySQL の Union 句が order by をサポートしていない問題の解決策について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
DB についてはあまり詳しくありません。この問題は MySQL でのみ発生します。他の DBMS でも同じかどうかはわかりません。
問題は、テーブル内の特定の行に隣接する2つの行を取得し、それらを結合して一緒に取り出したいので、次のように書きます。
リーリーしかし、「
UNIONとORDER BYの使用法が間違っています」というエラーメッセージが表示されました。このようにunionとorder byは使えないようですが、ここでは確かにorder byが必要です。すぐに、別の書き方を思いつきました:
リーリー経験上、2 番目の句は Union の影響を受けないはずなので、order by を使用できます。したがって、最初の句を括弧で囲めば問題ありません。しかし、依然としてエラーが発生し、「すべての派生テーブルには独自の別名が必要です」というメッセージが表示されます。ここでのヒントは、括弧内で生成された一時テーブルにエイリアスを与える必要があるということです。これにより、扱いやすくなります。したがって、次のように変更されました:
リーリー
このステートメントは正常に実行され、正しい結果が得られました。ここにメモを書きます。
さらに MySQL 関連のコンテンツに興味のある読者は、このサイトの特別トピックをチェックしてください:「MySQL ログ操作スキルの包括的なコレクション」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの包括的なコレクション」、 『MySQLデータベースロック関連スキルまとめ』と『MySQLでよく使う機能まとめ』
この記事が皆さんの MySQL データベース計画に役立つことを願っています。