ホームページ  >  記事  >  データベース  >  mysql 複合クエリ: 複合クエリとは何ですか?結合クエリの作成方法

mysql 複合クエリ: 複合クエリとは何ですか?結合クエリの作成方法

巴扎黑
巴扎黑オリジナル
2018-05-14 14:49:4311541ブラウズ

結合クエリとは

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

結合クエリを使用する必要がある基本的な状況は 2 つあります:

1. 単一のクエリで異なるテーブルから同様の構造のデータを返す場合;

2. 単一のクエリとしてデータを返す場合。

クエリと複数の WHERE 句の結合 ほとんどの場合、同じテーブル上で 2 つのクエリを結合すると、複数の WHERE 句条件を持つ単一のクエリと同じジョブが実行されます。つまり、次の段落でわかるように、複数の WHERE 句を含む SELECT ステートメントは結合クエリとして指定できます。どちらの手法も、クエリごとに異なるパフォーマンスを発揮します。したがって、両方の手法を試して、特定のクエリに対してどちらのパフォーマンスが優れているかを判断する必要があります。

結合クエリの作成方法

UNION 演算子を使用して、複数の SQL クエリを結合できます。 UNION を使用すると、複数の SELECT ステートメントを指定し、その結果を 1 つの結果セットに結合できます。

UNIONの使い方

UNIONの使い方は簡単です。必要なのは、各 SELECT ステートメントを指定し、各ステートメントの間にキーワード UNION を置くことだけです。

たとえば、価格が 5 以下のすべてのアイテムのリストが必要で、サプライヤー 1001 と 1002 によって製造されたすべてのアイテム (価格に関係なく) も含めたいとします。もちろん、これは WHERE 句を使用して実行できますが、今回は UNION を使用します。

前述したように、UNION の作成には複数の SELECT ステートメントの記述が含まれます。まず 1 つのステートメントを見てみましょう:

入力:

select vend_id,prod_id,prod_price from products where prod_price <= 5;

出力:

mysql 複合クエリ: 複合クエリとは何ですか?結合クエリの作成方法

入力:

select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);

出力:

mysql 複合クエリ: 複合クエリとは何ですか?結合クエリの作成方法

分析: 最初の SELECT は、価格が 5 以下のすべてのアイテムを取得します。 2 番目の SELECT は IN を使用して、サプライヤー 1001 および 1002 によって製造されたすべての品目を検索します。

これら 2 つのステートメントを結合するには、次の手順を実行します。

入力:

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);

出力:

mysql 複合クエリ: 複合クエリとは何ですか?結合クエリの作成方法

分析: このステートメントは、UNION キーワードで区切られた前の 2 つの SELECT ステートメントで構成されます。 UNION は、MySQL に 2 つの SELECT ステートメントを実行し、出力を 1 つのクエリ結果セットに結合するように指示します。

参考までに、UNION を使用する代わりに複数の WHERE 句を使用した同じクエリを次に示します。

入力:

select vend_id,prod_id,prod_price from products where prod_price <= 5 or vend_id in (1001,1002);

この単純な例では、UNION の使用は WHERE 句を使用するよりも複雑になる可能性があります。ただし、より複雑なフィルターの場合、または単一のテーブルではなく複数のテーブルからデータを取得する場合は、UNION を使用するとプロセスが簡素化される場合があります。

以上がmysql 複合クエリ: 複合クエリとは何ですか?結合クエリの作成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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