IN

指定した値のいづれか1つと一致するレコードを検索します。

expression [NOT] IN ( expression_list | sub_query )

 

*
下記のテーブルがあるとき…

社員マスタ

社員番号 名前 所属部署コード
1 しゃちょさん 100
2 部長さん 210
3 主任さん 220

 

給与マスタ

社員番号 月給
1 1000000
2 700000
3 400000

 

*
また、[社員]テーブルの社員番号が1、または3であるレコードを参照する場合は、以下のように記述します。

SELECT *
  FROM 社員マスタ
 WHERE 社員番号 IN (1, 3)
;

結果

社員番号 名前 所属部署コード
1 しゃちょさん 100
3 主任さん 220

 

*
また、[社員]テーブルの社員番号が1、かつ3でないレコードを参照する場合は、以下のように記述します。

SELECT *
  FROM 社員マスタ
 WHERE 社員番号 NOT IN (1, 3)
;

結果

社員番号 名前 所属部署コード
2 部長さん 210

 

*
また、給与マスタの月給が700000以上の社員マスタのレコードを参照する場合は、以下のように記述します。

SELECT *
  FROM 社員マスタ
 WHERE 社員番号 NOT IN (
           SELECT 社員番号
             FROM 給与マスタ
            WHERE 月給 >= 700000)
;

結果

社員番号 名前 所属部署コード
1 しゃちょさん 100
2 部長さん 210