結合クエリ:MySQLでは、複数のクエリ(複数のSELECTステートメント)を実行し、結果を単一のクエリ結果セットとして返すことができます。この組み合わせとクエリは、ユニオンクエリまたは複合クエリにもなります
まず、組み合わせクエリUNIONを使用します
UNION演算子を使用して、複数のSQLクエリを組み合わせることができます。
例を挙げましょう。価格が5未満の商品のリストをクエリし、サプライヤ1001および1002によって生産されたすべてのアイテムを含めます。最初にWHERE句を使用して、この作業を完了します。
SELECT vend_id,prod_id,prod_price
FROM products
WHERE prod_price <= 5 OR vend_id IN(1001,1002)
次に、複合クエリを使用してこの機能を実現し、UNIONがMySQLに2つのSELECTステートメントを実行するように指示し、出力を結果セットに合成します
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)
第二に、重複のキャンセルを含む行
UNIONは常に複数のWHERE句と同じ条件を完了するため、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)
3. UNIONルール
- UNIONは2つ以上のSELECTステートメントで構成する必要があります
- UNIONの各クエリには、同じ列、式、または集計関数を含める必要があります。しかし、それらの順序は異なる場合があります
- 結合クエリ結果を並べ替える場合、結果セットには2つの並べ替え方法がないため、最後のSELECT句の後に配置する必要があります。