【发布时间】:2016-02-17 00:34:10
【问题描述】:
我正在尝试在PostgreSQL 中构建一个一对多查询,该查询查看客户表、交易表,结果是显示客户购买了哪些产品的表。
table: customers
id
1
2
3
4
5
table: purchases
custid product
1 software 1
1 software 2
3 software 2
3 software 3
4 software 1
5 software 1
5 software 2
5 software 3
我想要得到的结果是:
custid software1 software2 software3
1 TRUE TRUE NULL
3 NULL TRUE TRUE
4 TRUE NULL NULL
5 TRUE TRUE TRUE
据我所知,我需要使用crosstab(因为postgreSQL 不支持pivot),但我不确定snytax。如果输出包含行,我也可以:
custid software1 software2 software3
2 NULL NULL NULL
如果以一种或另一种方式更容易做到这一点,那并不重要。
【问题讨论】:
-
您是否喜欢
customers.id被包括在内?还是性能更重要? -
最好将其包含在内。
标签: sql postgresql pivot crosstab