Sql从另一个表的一组结果中查询新列作为数组

时间:2015-02-18 03:36:05

标签: sql arrays json postgresql join

我正在尝试对两个表进行连接查询并包含一个新列,该列实际上是来自另一个表的查询的结果,但是新列是一个数组,也许可以是一个json。为了证明我有这张表:

enter image description here

并且每个条目可以包含多个

enter image description here

我知道我可以使用条目ID选择所有情节,但这不是我想要的。我想选择所有条目以数组形式显示其所有图,以便我可以将它们放在一个漂亮的单个表中:

enter image description here

我不知道到底在哪里看。那么如何将数组作为连接查询的列返回。谢谢!如果这有任何区别,我正在使用PostgreSQL。

1 个答案:

答案 0 :(得分:3)

使用array_agg()

select e.id, e.entry_name, array_agg(plot_name)
from entry e join
     plot p
     on e.id = p.entry_id
group by e.id, e.entry_name;