NOT IN句を利用すると、インデックス検索対象外になる為、対象数が増えれば増えるほど重くなる。こういったときは、NOT EXISTSを使うと速くなる。

スポンサーリンク

not in句のコード

## 商品売上テーブルに存在していて、商品管理マスタにないレコードのみ抽出
SELECT
  shohin_cd
  , sales 
FROM
  shohin_sales 
WHERE
  shohin_cd NOT IN
  ( SELECT 
      shohin_cd
    FROM
      shohin_master
  ) 

not exists句のコード(こっちのが早い

## 商品売上テーブルに存在していて、商品管理マスタにないレコードのみ抽出
SELECT
  shohin_cd
  , sales 
FROM
  shohin_sales
WHERE
  NOT EXISTS
  ( SELECT
      shohin_cd
    FROM 
      shohin_master
    WHERE
      shohin_cd = shohin_sales.shohin_cd
  ) 
おすすめの記事