我有两张表tablea和tableb。他们的结构是:
tablea
id serial
name varchar
alg integer[]
tableb
id serial
description varchar
tablea.alg字段中的我有多个像{1,17,55,97}这样的物质,在查询中我想获取名称而不是数字:
name | substances
organism1 | substance 1, substance 17, substance 55, substance 97
any1可以提出正确的查询吗?
关于simmilar问题的答案在StackOwerflow question,但如何使用表而不是固定数组值?
谢谢...
答案 0 :(得分:0)
使用unnest()
在单独的行中获取algs
,
加入值tableb
并使用description
汇总string_agg()
:
select name, string_agg(description, ', ') substances
from (
select name, unnest(alg) alg
from tablea
) a
join tableb on alg = id
group by name;