MySQL複合クエリの詳細な説明

MySQL複合クエリの詳細な説明

UNIONの使用

ほとんどの SQL クエリは、1 つ以上のテーブルからデータを返す単一の SELECT ステートメントで構成されます。 MySQL では、複数のクエリ (複数の SELECT ステートメント) を実行し、結果を単一のクエリ結果セットとして返すこともできます。これらの結合されたクエリは、多くの場合、ユニオンと呼ばれます。

複合クエリが必要となる状況は 2 つあります。

  • 単一のテーブル クエリで、異なるテーブルから同様に構造化されたデータを返します。
  • 単一のテーブルに対して複数のクエリを実行し、データを単一のクエリとして返します。

クエリと複数の WHERE 条件の組み合わせ: ほとんどの場合、同じテーブルで 2 つのクエリを組み合わせると、複数の WHERE 句条件を持つ単一のクエリと同じ作業が実行されます。

UNION 演算子を使用して、複数の SQL クエリを組み合わせることができます。必要なのは、各 SELECT ステートメントを指定して、各ステートメントの間にキーワード UNION を入れることだけです。

例えば:

価格が5以下のすべての商品のリストが必要で、サプライヤー1001と1002が製造したすべての商品も含めたいとします。もちろん、WHERE句を使用してこれを実現できますが、ここではUNIONを使用します。

  • ここに2つの文の組み合わせがあります
製品からvend_id、prod_id、prod_priceを選択します。ここで、prod_price <= 5です。

SELECT vend_id、prod_id、prod_price FROM products WHERE vend_id IN (1001, 1002);

  • 次の文を使うことができます
SELECT vend_id、prod_id、prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id、prod_id、prod_price FROM products WHERE vend_id IN (1001, 1002);

  • 同様にWHERE句を使うこともできる
製品からvend_id、prod_id、prod_priceを選択します。prod_price <= 5、またはvend_id IN (1001, 1002)です。

UNIONルール

  • UNION は、キーワード UNION で区切られた 2 つ以上の SELECT ステートメントで構成されている必要があります。
  • UNION 内の各クエリには、同じ列、式、または集計関数が含まれている必要があります (列は同じ順序でリストされている必要はありません)。
  • 列のデータ型は互換性がある必要があります。同じ型である必要はありませんが、DBMS が暗黙的に変換できる型 (異なる数値型または異なる日付型) である必要があります。

重複行を含めるか除外するか

UNION は、クエリ結果セットから重複する行を自動的に削除します。一致するすべての行を返す場合は、UNION ALL を使用します。

SELECT vend_id、prod_id、prod_price FROM products WHERE prod_price <= 5 UNION ALL SELECT vend_id、prod_id、prod_price FROM products WHERE vend_id IN (1001, 1002);

結合されたクエリ結果の並べ替え

SELECT ステートメントの出力は、ORDER BY 句を使用してソートされます。UNION を使用してクエリを結合する場合、使用できる ORDER BY 句は 1 つだけです。最後の SELECT ステートメントの後に表示される必要があります。複数の ORDER BY 句は許可されません。

SELECT vend_id、prod_id、prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id、prod_id、prod_price FROM products WHERE vend_id IN (1001, 1002) ORDER BY vend_id、prod_price;

上記はMySQL複合クエリの詳細な説明です。MySQL複合クエリの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL サブクエリ (ネストされたクエリ)、結合テーブル、複合クエリの詳細な説明
  • MySQLクエリデータを時間別に表示します。データがない場合は0を入力してください。
  • MySQL sql_modeクエリと設定の詳細な説明
  • MySQL サブクエリとグループ化されたクエリ
  • MySQL グループ化クエリと集計関数
  • MysqlクエリJSON結果に関連する関数の概要
  • MySQLクエリのソートとページング関連
  • MySql クエリ期間メソッド
  • MySQL での基本的な複数テーブル結合クエリのチュートリアル
  • MySQL のサブクエリの例

<<:  TCPパフォーマンスチューニングの実装原理とプロセス分析

>>:  マークアップ言語 - テキストの CSS スタイルを指定する

推薦する

Linux で Tomcat を実行するいくつかの方法の説明

Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...

Nginxでネットワーク分離を解決した実践記録を詳しく解説

必要最近、Node オンライン サービスを移行する必要があったため、2 つの新しいオンライン サーバ...

Mysql での結合操作

結合の種類1. 内部結合: 結合関係を持つ 2 つのテーブル内のフィールドは、結合関係を満たすレコー...

ElementUI ページネーション コンポーネントの使い方 Vue でのページネーション

ElementUIページングコンポーネントPagination in Vueの使用は参考になります。...

ウェブデザイナーは適した人材

<br />この世に道はない。より多くの人が歩くようになると、それは道になります。最初は...

MySQLフィールド定義でnullを使用しない理由の分析

NULL が頻繁に使用されるのはなぜですか? (1)Javaのnull Java の NullPoi...

Vue でのスロット配置と使用状況分析

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

CSS スタイルの優先順位はどれくらい複雑ですか?

昨晩、面接の質問を見ていたら、CSS スタイルの優先順位について特に明確に説明していない人が何人かい...

CSS 要素の非表示の原則と display:none および visibility:hidden

1. CSS 要素の非表示<br />CSS では、要素を非表示にする (つまり、画面の...

Nginx シグナル制御

Nginx の紹介Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要

この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...

Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明

みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...

Linux サーバーは最大いくつのポートを開くことができますか?

目次ポート関連の概念:ポートとサービスの関係1: nmapツールが開いているポートを検出する2: n...

MySQL シーケンス AUTO_INCREMENT の詳細な説明とサンプルコード

MySQL シーケンス AUTO_INCREMENT の詳細な説明とサンプルコードMySQL シーケ...

Docker が MySQL イメージをプルするのが遅すぎる問題を解決する

Docker を使用して MySQL イメージをプルしようとして 30 分経っても失敗したため、代わ...