#sql #postgresql
#sql #postgresql
Вопрос:
Мне нужна помощь с простым, я думаю, запросом select. Я не эксперт по 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 |
Любая помощь очень ценится.
Ответ №1:
Вам необходимо установить модуль 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