Postgresql从2个具有不同列数的表中选择多个记录

时间:2013-05-15 02:50:13

标签: postgresql-9.2

我在postgres数据库中有2个表,其中包含以下记录 - :

TableA
======
ID       DESC          TEAM       STATUS
254      NSW emp       Sales        A
365      NSW,VIC emp   Sales        L
2345     NSW emp       Post Sales   A
...........
.....



TableB
======
ID      STATE
254     NSW
365     NSW
365     VIC
365     QLD
2345    NT
2345    NSW
...........

我想从2个表中为每个唯一ID选择ID, DESC, STATUS and STATE,并按以下格式捕获输出。

ID       DESC        STATUS      STATE
254      NSW emp       A          NSW
365      NSW,VIC emp   L          NSW,VIC,QLD
2345     NSW emp       A          NT,NSW
.........

尝试将SELECT语句与JOIN / INTERSECT和SELECT ARRAY一起使用(....... 这失败了“每个INTERSECT查询必须具有相同的列数”

任何想法都会受到赞赏吗?

1 个答案:

答案 0 :(得分:0)

SELECT TABLEA.ID,
       DESCR,
       TEAM,
       STATUS,
       array_agg(STATE) 
       FROM TABLEA 
        inner join TABLEB
          ON TABLEA.ID = TABLEB.ID 
       GROUP BY TABLEA.ID,DESCR,TEAM,STATUS