【发布时间】:2017-07-05 20:31:38
【问题描述】:
当要加入的值超过 1 个时,在进行 INNER JOIN 时如何选择以在一个单元格中获取 JSON 数组?
前表:
T1:
id | name
1 Tom
2 Dom
T2:
user_id | product
1 Milk
2 Cookies
2 Banana
我当然会SELECT * FROM T1 INNER JOIN T2 ON T1.id = T2.user_id。
但后来我得到:
id | Name | product
1 Tom Milk
2 Dom Cookies
2 Dom Banana
但我想得到:
id | Name | product
1 Tom [{"product":"Milk}]
2 Dom [{"product":"Cookies"}, {"product":"Banana"}]
如果我使用agg 函数做某事,那么我需要将其他所有内容放在GROUP BY 中,在那里我至少有10 个参数。整个查询需要 5 分钟以上。
我的T1 大约有 4000 行,T2 大约有 300 000 行,每行都与 T1 中的某些行相关联。
有没有更好的办法?
【问题讨论】:
标签: sql postgresql group-by