我需要一些简单的帮助,我猜,选择查询。我不是SQL专家,所以我甚至不确定如何命名此查询,以及在此类操作中使用了哪些关键字。我们假设我有两个关系表:
table foo:
id | name
---------
1 | foo
2 | oof
3 | ofo
4 | fob
5 | bof
table bar:
id | feature
------------
1 | bar
1 | arb
1 | rab
3 | 333
4 | ddd
4 | eee
期望的结果是:
id | name | feature | feature | feature
----------------------------------------
1 | foo | bar | arb | rab
3 | ofo | 333 | |
4 | foo | ddd | eee |
非常感谢任何帮助。
答案 0 :(得分:2)
您需要安装tablefunc模块。然后你可以编写像
这样的查询SELECT *
FROM crosstab('SELECT id, name, feature
FROM foo
INNER JOIN bar on foo.id = bar.id')
AS ct(id integer, name text, feature_1 text, feature_2 text, feature_3 text);
其他信息http://www.postgresql.org/docs/9.1/static/tablefunc.html