サブクエリとは

サブクエリの利用方法は大きく2つ

SQLのサブクエリ(副問い合わせ)は、主クエリに別のクエリを同時に使用する構文です。サブクエリは、主に次の2つの方法で使用します。

  • FROM内のサブクエリ
  • WHERE内のサブクエリ

FROMのサブクエリ

主クエリのFROM内に別のクエリを記述すると、サブクエリが一時的なテーブルとして主クエリと結合できます。これにより、サブクエリの結果をフィルタリング、結合、集計などの処理が1つのSQLで実行できます。

SELECT * FROM テーブル1
WHERE xxxx_id = (SELECT id FROM テーブル2 WHERE カラム1 = 'xxxxx');

WHERE内のサブクエリ

主クエリのWHERE内に別のクエリを記述すると、サブクエリの結果を元にフィルタリングできます。WHEREの条件式となるため、その条件式がTRUEとなるレコードが返されます。

SELECT *
FROM テーブル1
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
    WHERE order_date >= '2022-01-01'
    GROUP BY customer_id
    HAVING COUNT(*) >= 5
);
SELECT *
FROM user_items
WHERE user_id = (SELECT id FROM users WHERE name = 'xxxxx');