検索

[Oracle] データ検索 複数の検索結果の差抽出SQL(MINUS)

データの検索(複数の検索結果の差検索)

検索結果の差を抽出する

複数の検索結果の差を抽出するには、MINUSを使用します。
算術式(5 – 3)のようなイメージで使用します。

SELECT 列1, 列2 ・・・ FROM テーブル1;
MINUS
SELECT 列1, 列2 ・・・ FROM テーブル2;

それではサンプルを見てみましょう。
以下のようなteam1テーブル(上)、team2テーブル(下)があります。

emp_no name dept
A00001 荒木 太郎 A課
A00002 井端 次郎 B課

emp_no name dept
A00002 井端 次郎 B課
A00003 森野 三郎 C課


team1テーブルからteam2テーブルとの重複を除いた差を抽出するためのSQLです。

上記を実行し、抽出された結果がこちらです。

emp_no name
A00001 荒木 太郎


重複データを除いたteam1テーブルのデータが抽出されました。
 
なお、基にする検索結果と差し引く対象の検索結果は、項目数、データ型が同じである必要があるので注意してください。
 
 
以上が、複数の検索結果の差を抽出する「MINUS」の使い方です。
ぜひ参考にしてみてください。