SQLサブクエリを使用したSELECT内のSELECT文の使用方法


例1: サブクエリを使用した単純なSELECT文

SELECT column1, column2
FROM table1
WHERE column1 IN (SELECT column1 FROM table2)

上記の例では、table1からcolumn1column2の値を取得しています。しかし、column1の値は、table2の中の別のSELECT文を使ってフィルタリングされます。つまり、table2の中のcolumn1の値と一致する行だけが結果に表示されます。

例2: サブクエリを使用した集計関数の結果の取得

SELECT column1, (SELECT COUNT(*) FROM table2 WHERE table2.column1 = table1.column1) AS count
FROM table1

上記の例では、table1からcolumn1の値を取得しています。さらに、table2内でtable1の各行のcolumn1と一致する行の数を取得しています。この値は、(SELECT COUNT(*) FROM table2 WHERE table2.column1 = table1.column1)というサブクエリによって取得され、countという別名で結果に表示されます。

これらは、サブクエリを使用してSELECT文の内部で別のSELECT文を実行する基本的な例です。さまざまな方法でサブクエリを使用することができ、より複雑なクエリを作成することもできます。詳細については、SQLのドキュメントやチュートリアルを参照してください。