(これは以前に行ったことがありますが、ゴーグルがそうであるように、メモリが消えます)
配列として返される各ユーザーのtag.tag_id
sを使用してusers
から選択を取得します。
select usr_id、 name、 (タグtからt.tag_idを選択します。ここで、t.usr_id = u.usr_idとして)、ユーザーu; [からのtag_arr として選択します。 ____。]
埋め込みクエリtag_arr
のアイデアは配列になります
集計関数 を使用します。
select
usr_id,
name,
array_agg(tag_id) as tag_arr
from users
join tags using(usr_id)
group by usr_id, name
または、サブクエリの結果からの 配列コンストラクタ :
select
u.usr_id,
name,
array(
select tag_id
from tags t
where t.usr_id = u.usr_id
) as tag_arr
from users u
2番目のオプションはシンプルで高速ですが、最初のオプションはより一般的です。特に、関連するテーブルから複数の集計が必要な場合に便利です。