サブクエリとは
サブクエリの利用方法は大きく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');