我有两张桌子。一个是产品列表,一个是其众多属性的列表。 (这已经从我原来的模型中简化了。;))
表prods
有两列:id
和name
表格taxons
有三列:id
,name
和prod_id
。
Prods
有四条记录:
id | name = = = = = = 1 | boat 2 | tree 3 | lamp 4 | soda
Taxons
有十五条记录:
id | name | prod_id = = = = = = = = = = = = = = 1 | bright | 3 2 | breezy | 1 3 | green | 2 4 | wet | 1 5 | sturdy | 2 6 | shady | 2 7 | antique | 3 8 | deciduous | 2 9 | buoyant | 1 10 | fizzy | 4 11 | calming | 2 12 | carefree | 1 13 | big | 1 14 | sweet | 4 15 | brass | 3
我想要的是使用taxons
和prods
将prods.id
加入taxons.prod_id
的查询,但只返回4行,如下所示:
(所需)结果:
1 | boat | breezy | wet | buoyant | carefree | big 2 | tree | green | sturdy | shady | deciduous | calming 3 | lamp | bright | antique | brass 4 | soda | fizzy | sweet
我不知道该去哪里,我尝试了各种工会和联合组合,但没有发现任何有用的东西。我们正在使用postgres。有任何想法吗?
答案 0 :(得分:3)
要获取一列中的所有值,您可以使用array_agg()
:
select p.id, array_agg(t.name) list
from prods p
inner join taxons t
on p.id = t.prod_id
group by p.id
答案 1 :(得分:2)
应该能够适应本文中的GROUP_CONCAT
等价物: