【SQL】NOT IN句で指定した条件に一致しないデータを取得する

SQLを使用してデータベースから情報を取得する際、時には特定の条件に一致する行を除外したい場合があります。そのような場合に便利なのが、「NOT IN」句です。この記事では、「NOT IN」句の使い方について詳しく解説します。

「NOT IN」句とは?

「NOT IN」句は、SQLで使用される強力なフィルタリング機能の1つです。これを使用すると、特定の条件に一致する行を結果セットから除外することができます。

「NOT IN」句の基本的な使い方

基本的な構文は次の通りです。

SELECT 列1、列2、...
FROM テーブル名
WHERE 列名 NOT IN (値1、値2、...);

これを使用することで、特定の列の値が指定した値のいずれかに一致しない行を取得できます。

サブクエリとの組み合わせ

「NOT IN」句は、サブクエリと組み合わせて使用することもできます。これにより、別のクエリの結果に基づいて動的に値のリストを生成し、それを使用してフィルタリングできます。

SELECT 列1、列2、...
FROM テーブル名
WHERE 列名 NOT IN (別のテーブルからの値を取得するサブクエリ);

実際の使用例

具体的な例を見てみましょう。従業員テーブルからHR部門に属さない従業員を取得するクエリを紹介します。

SELECT employee_id, department_id
FROM employees
WHERE department_id NOT IN (1);

まとめ

以上が、「NOT IN」句の基本的な使い方と応用例です。この機能を使いこなすことで、より柔軟なデータの抽出やフィルタリングが可能になります。