我有两个表:Person和events
我想按person.id加入表,但不希望查询返回每个事件的记录。相反,我希望它返回一个每个人都有许多事件附加到它的记录。这可能吗?
例如,我得到:

["person_id" : "1", "eventid" :"1"]
["person_id" : "1", "eventid" :"2"]
["person_id" : "1", "eventid" :"3"]

但我想要的是
["person_id" : "1", ["eventid" :"1", "eventid" :"2", "eventid" :"3"]]

最佳答案

使用array_agg

select person.id, array_agg(eventid)
from person
 inner join events
 on person.id = events.person_id
group by person_id

关于sql - 在“一个”表中一对多加入并按ID分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30403564/

10-13 04:08