サブクエリ

Tag:

SQL文の中にSELECT文を埋め込むことができます。埋め込まれたSELECT文によって抽出された値を利用することで、色々な条件指定をすることができます。

単一の結果を返すサブクエリ

スカラ値(単一の値)を返すサブクエリのことをスカラサブクエリといいます。スカラサブクエリの使用例です。

/* SELECT句にスカラサブクエリを指定 */
SELECT カラム1, (SELECT SUM(カラムA) FROM テーブル2) AS SUMVALUE
FROM テーブル1


/* HAVING句にスカラサブクエリを指定 */
SELECT カラム1, AVG(カラム2)
FROM テーブル1
GROUP BY カラム1
HAVING AVG(カラム2) > (SELECT AVG(カラム2) FROM テーブル1)

複数の結果を返すサブクエリ

複数レコードを抽出する場合の使用例です。

/* WHERE句にサブクエリを指定 */
SELECT id 
FROM テーブル1
WHERE id IN (SELECT テーブル1_id 
               FROM テーブル2
              WHERE 種別 = 5)


/* LEFT JOINで結合するテーブルとしてサブクエリを指定 */
SELECT テーブル1.*, テーブル2_cnt.count 
FROM テーブル1 
LEFT JOIN (SELECT テーブル1_id, count(テーブル1_id) 
              FROM テーブル2 
             WHERE 条件 
          GROUP BY テーブル2.テーブル1_id) as テーブル2_cnt
ON テーブル1.id = テーブル2_cnt.テーブル1_id 
WHERE 条件

スポンサーリンク