我在表tt_test
中有一个名为fields
的数组列,如下所示:
fields
{A}
{B,C}
{D}
{E}
表tt_config
包含每个field
:的field_id
field field_id
A 1
B 2
C 3
D 4
E 5
从上面的两个表中,我需要创建第三个名为tt_output
fields field_ids
{A} {1}
{B,C} {2,3}
{D} {4}
{E} {5}
postgresql/sql是一个相当新的版本,所以任何帮助/指针都将不胜感激!
一种方法是使用标量子查询:
select t.fields,
array(select c.field_id
from tt_config c
where c.field = any(t.fields)) as field_ids
from tt_test t
您可以使用union
运算符联接到表。要使用此运算符,必须有两个相同的标头。
您可以使用此查询
select fields , null as field_ids from tt_test
union
select fields , field_ids from tt_config