SELECT文 – クエリの結合

クエリの結合


はじめに


クエリの結合とは、2つのクエリの出力結果を「和、差、積、の 3 種類の方法で結合すること」をいいます。
サブクリエに比べると考え方は単純ですが、注意しなければいけない点があります。
それは、それぞれのクエリから出力される列は比較可能なものでなければなりません。
要するに、 データ型 と 列数 が一致しなければ、クエリを結合することはできません。
その点を踏まえて、この章を進めて行きましょう!

Step1: 演算子の種類


演算子の種類と内容を表にしました。

    演算子     内容
UNION演算子 和結合
INTERSECT演算子 積結合
EXCEPT演算子 差結合

Step2 : UNION演算子


UNION演算子は、2つのクエリの出力結果の和集合を行います。
2つのクエリの出力結果を結合し、重複している行を削除します。

SELECT SubTotal FROM Order_detail WHERE SubTotal > 5000
   UNION
        SELECT SubTotal FROM Order_detail WHERE SubTotal < 6000

小計が5000より大きい値を出力するクエリと、小計が6000より小さい値を出力するクエリの和結合を出力します。

Step3 : INTERSECT演算子


INTERSECT演算子は、2つのクエリの出力結果の積集合を行います。
2つのクエリの出力結果から同じものだけを出力します。

SELECT SubTotal FROM Order_detail WHERE SubTotal > 5000
   INTERSECT
        SELECT SubTotal FROM Order_detail WHERE SubTotal < 6000

2つのクエリの出力結果の中で、同じものだけを出力します。

Step4 : EXCEPT演算子


EXCEPT演算子は、2つのクエリの出力結果の差集合を行います。

SELECT A.SubTotal FROM Order_detail A WHERE A.SubTotal > 5000
    EXCEPT
        SELECT B.SubTotal FROM Order_detail B WHERE B.SubTotal < 6000

テーブルAの出力結果の内、テーブルBの出力結果に含まれないものを出力します。
テーブルAの出力結果は小計{5500,8000,12800}です。この中で小計{5500}はテーブルBの出力結果に含まれているので出力しませんでした。

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami