【SQL】SQL ~ IN句 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2010/08/06/111640

の続き。過去記事を整理。

SQL のIN句 / NOT IN句を扱う

【1】IN句 / NOT IN句

 * 「値1 か 値2 か ・・・・ のどれかに合う」データを返す
 * 指定した条件が、対象項目に入ってるかどうかを判定できる
 * 例えば、「全国の都道府県から、関東を抜き出して」ってことができる
 * 「IN」は「OR」と同じ意味であるが、構文が分かり易くなる

【2】構文

-- IN句
SELECT [項目] FROM [テーブル名]
WHERE
[対象項目] IN (条件1, 条件2, ...) /* ★ここ注目★ */

-- NOT IN句
SELECT [項目] FROM [テーブル名]
WHERE
[対象項目] NOT IN (条件1, 条件2, ...)

1)複数項目時

https://qiita.com/lithtle/items/4517785c67843f601443

SELECT [項目] FROM [テーブル名]
WHERE
(列名, 列名, ...) IN (条件1, 条件2 ... )

【3】サンプル

1)Hello world

SELECT * FROM testTable
WHERE prefectureName
 IN ('Tokyo', 'Kanagawa', 'Chiba', 'Saitama', 'Gunma', 'Ibaraki', 'Tochigi');

2)複数項目指定時

SELECT * FROM person
WHERE
 id, date IN (SELECT id, date FROM member)
;

【4】使用上の注意

 * パフォーマンス(今は大した問題じゃないと思うが)。

パフォーマンスの良いSQLを記述 ~検索条件編~
https://dk521123.hatenablog.com/entry/2012/05/05/003504

関連記事

SQL ~ BETWEEN句 ~
https://dk521123.hatenablog.com/entry/2010/08/06/111640
SQL ~ HAVING句 ~
https://dk521123.hatenablog.com/entry/2010/07/13/154947
Window関数 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/22/000000
グループ内のMAXデータを取得する
https://dk521123.hatenablog.com/entry/2018/10/06/230841
SQL ~ 関係演算 / 集合論
https://dk521123.hatenablog.com/entry/2023/01/16/000000
SQLを書くコツ
https://dk521123.hatenablog.com/entry/2016/01/11/173055
パフォーマンスの良いSQLを記述 ~検索条件編~
https://dk521123.hatenablog.com/entry/2012/05/05/003504