概要 連合 接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外することができます。 ユニオンオール 接続データセット キーワードを使用すると、同一のレコードを除外せずに、2 つのクエリ結果セットを 1 つに連結できます。 本日、依頼を受けてUNIONを使ってクエリを実行したところ、2つのクエリをそれぞれORDER BYを使って連結するとうまく並び替えられないことが分かりました。色々と苦労したので記録しておきます。 テーブル構造とデータ -- テーブルを作成する CREATE TABLE test_user ( ID int(11) NOT NULL AUTO_INCREMENT、 USER_ID int(11) DEFAULT NULL COMMENT 'ユーザーアカウント', USER_NAME varchar(255) DEFAULT NULL COMMENT 'ユーザー名', AGE int(5) デフォルト NULL コメント '年齢', COMMENT varchar(255) DEFAULT NULL COMMENT 'はじめに', 主キー (ID) ) ENGINE=InnoDB AUTO_INCREMENT=7 デフォルト CHARSET=utf8; -- データ挿入ステートメント INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES ('1', '111', 'Happy rookie', '18', 'Very happy today'); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES ('2', '222', '悲しい新人', '21', '今日はとても悲しい'); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES ('3', '333', '本気の新人', '30', '今日はとても本気'); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES ('4', '444', 'Happy rookie', '18', '今日はとても幸せです'); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES ('5', '555', '本気の新人', '21', '今日はとても本気です'); デフォルトのテーブルデータは次のように表示されます 結果分析を実行する -- クエリ 1 選択 * から テストユーザー u 年齢順 結果セット 1 -- クエリ 2 -- UNIONの使用 ( 選択 * から テストユーザー u 年齢順 ) 連合 ( 選択 * から テストユーザー u 年齢順 ); -- クエリ 3 -- UNION ALLの使用 ( 選択 * から テストユーザー u 年齢順 ) ユニオンオール ( 選択 * から テストユーザー u 年齢順 ) 結果セット2: UNIONの使用 UNION は同一のレコードを結合するため (DISTINCT と同じ効果があります)、ここでは 5 つのレコードのみが表示されます。 結果セット3: UNION ALLの使用 UNION ALL を使用してソートする必要がある場合は、サブクエリとしてクエリを実行する必要があります。 -- クエリ 4 -- UNION ALLをサブクエリとして使用し、SELECTをソートする * から ( ( 選択 * から テストユーザー u 注文する 年 ) ユニオンオール ( 選択 * から テストユーザー u 注文する 年 ) ) 注文する 年; 結果セット 4 改善する 関連する経験を検索した後、私は不必要なことをしていたことに気づきました。サブクエリを使用せずにソートを実行できることがわかりました。 -- クエリ 5 -- 最初のクエリではソートを使用しません。ソートを使用する場合は、括弧なしでエラーが報告されます (これが、以前はサブクエリを使用したかったのに、この方法を思いつかなかった理由です) 選択 * から テストユーザー u ユニオンオール 選択 * から テストユーザー u 注文する 年 結果セットは結果セット 4 と同じなので、結果はここに貼り付けられません。 結論は UNION (または UNION ALL) ステートメントを使用する場合、UNION の 2 つの結果セットが別々にソートされてから結合されると、ORDER BY は無効になります。並べ替えるには、次の 2 つの方法があります。
参考リンク cnblogs: MySQL での UNION と UNION ALL の使用 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Vue 親コンポーネントが子コンポーネント関数の実装を呼び出す
>>: Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル
方法 1: Google の詳細検索を使用します。たとえば、次に示すように.asp?id=9などの ...
この記事では、例を使用して、MySQL ユーザー権限を確認および管理する方法を説明します。ご参考まで...
ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...
目次序文1. 公式サイトからMySQL 8.0.22をダウンロードする2. 環境変数を設定する3. ...
HTMLは2列レイアウトを実装し、左側は固定幅、右側は適応幅です。実装1: <スタイル>...
前回の記事【dockerコンテナのためのdockerfileを詳しく解説】では、dockerfile...
目次基本タイプあらゆるタイプ配列タプルインタフェース関数自己推論を入力する結合タイプ(1つ以上選択)...
目次1. コンポーネント切り替え方式方法1: v-ifとv-elseを使用する方法 2: 組み込みコ...
目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...
1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...
1. CSS 方法論とは何ですか? CSS methodologiesデザイン パターンまたは CS...
目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...
文章さて、次はレンダリングを見せましょう。画像を見て初めて理解することに興味が湧くでしょう。そうでな...
必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...
序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...