SQL WHERE IN 句

Sql Where In Ju



SQL では、WHERE IN 句を使用して、特定のデータベース内の結果をフィルターで除外できます。 WHERE IN 句を使用すると、指定されたリストから 1 つ以上の指定された値に一致する行を、指定されたデータベースから選択できます。

このチュートリアルでは、WHERE IN 句を調べて、指定されたテーブルまたは結果セットから結果をフィルタリングするために WHERE IN 句を使用する方法を見つけます。

SQL WHERE IN 句

以下に、SQL の WHERE IN 句の基本構文を示します。







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

基本的な「select」ステートメントから始めて、その後に結果セットに含めたい列を続けます。



次に、結果を取得するテーブルを指定します。最後に、WHERE 句とその後にフィルターする列の名前を使用してフィルター条件を指定します。 IN 句の後に、フィルタリングに使用する値のリストを指定します。



例 1: 単一の結果をフィルタリングする

WHERE IN 句の使用方法をよりわかりやすく説明するために、例を見てみましょう。 sakila サンプル データベースの「film」テーブルを考えてみましょう。





PG または PG-13 のレーティングを持つすべての映画を取得したいとします。 WHERE IN 句は次のように使用できます。

タイトル、リリース年、評価を選択します
フィルムから
WHERE 評価 IN ('PG');

この場合、取得する単一の値のリストを IN 句で指定します。



例 2: 複数の値をフィルタリングする

値のリストに複数の項目を指定することもできます。たとえば、PG および PG-13 のレーティングを持つリストを含む映画を取得するには、次のようにクエリを実行します。

タイトル、リリース年、評価を選択します
フィルムから
WHERE 評価 IN ('PG', 'PG-13');

結果の出力は次のようになります。

例 3: サブクエリを使用したフィルター

サブクエリで WHERE IN を使用すると、特定の結果セットから結果をフィルターで除外することもできます。

言語に基づいて映画をフィルタリングしたいとします。たとえば、英語と日本語の映画を取得するには、次のようにサブクエリ内で WHERE IN を使用します。

タイトル、リリース年、評価を選択します
フィルムfから
WHERE 言語 ID IN (
言語 ID を選択します
FROM言語
WHERE 名 IN ('英語'、'日本語')
);

この例では、「言語」テーブルから英語と日本語の「言語 ID」値を取得するサブクエリを作成します。メインクエリでは、結果として得られる「 language_id 」値に基づいて映画を選択します。

結論

この投稿では、SQL の WHERE IN 句を使用して、指定されたリスト内の 1 つまたは複数の値に一致する結果をフィルターで除外する方法を学びました。