-
単純なサブクエリの例:
SELECT column1 FROM table1 WHERE column2 IN (SELECT column3 FROM table2);
上記の例では、
table2
のcolumn3
の値に基づいて、table1
のcolumn1
を選択しています。IN
演算子を使用して、サブクエリの結果をフィルタリング条件として使用しています。 -
スカラーサブクエリの例:
SELECT column1, (SELECT MAX(column2) FROM table2) AS max_value FROM table1;
上記の例では、
table2
のcolumn2
の最大値を取得し、それをtable1
の各行に対して計算されたカラムmax_value
として追加しています。 -
相関サブクエリの例:
SELECT column1 FROM table1 t1 WHERE column2 > (SELECT AVG(column3) FROM table2 t2 WHERE t2.column4 = t1.column4);
上記の例では、メインクエリのテーブル(
table1
)とサブクエリのテーブル(table2
)の間に相関関係があります。サブクエリの結果はメインクエリの条件に依存しています。 -
EXISTS句を使用したサブクエリの例:
SELECT column1 FROM table1 t1 WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t1.column2 = t2.column2);
上記の例では、
table1
の行がtable2
に存在するかどうかをチェックしています。サブクエリの結果が空でない場合、EXISTS
句は真となり、その行が結果に含まれます。
これらはいくつかの基本的なサブクエリの例ですが、PostgreSQLではさまざまなサブクエリの使用法があります。具体的な要件に応じて、より複雑なサブクエリを作成することもできます。