s平面の左側

左側なので安定してます(制御工学の話は出てきません)

【PostgreSQL】SELECT した結果を変数に格納して後続のクエリで利用する(\gset メタコマンド)

www.postgresql.jp

\gset には 1 行の結果をしか格納できないが、string_aggr を使ってカンマ区切り文字列にし、string_to_array で展開して使うという工夫で次のように使用できる。

-- 普通の変数代入
\set target_user_id '01234567-89ab-cdef-0123-456789abcdef'

-- SELECT 結果を \gset を 使って post_ids という名前で格納
SELECT string_agg(id::text, ',') as post_ids
FROM post 
WHERE auther_id = :'target_user_id'
\gset

-- 変数に格納した値を使う
SELECT *
FROM post_detail 
WHERE post_id = ANY(string_to_array(:'post_ids', ',')::uuid[]);