0

我有 2 个表,其中一个通过 id 引用了第一个表

例如,第一个表是具有字段的客户

    id       firstname     lastname
    ------   ---------     ---------
    1        john          smith
    2        jessica       james

例如,第二个表是具有字段的产品

   id        customer_id     product     descr
   -------   -----------     ---------   ------
   1         1               ts          Shirt
   2         1               ti          Tie
   3         2               sk          skrit

我需要一个将输出以下内容的查询

   customer.firstname  customer.lastname    product_and_desc
   ------------------  ------------------   ---------------------
   john                smith                ts-Shirt , ti-Tie
   jessica             james                sk-skirt

每个客户的产品行变量。

感谢您的帮助:)

谢谢,

4

2 回答 2

1

您可以使用list_agg(). 在你的情况下:

select c.firstname, c.lastname,
       list_agg(p.product||'-'||p.desc, ' , ') within group (order by p.id) as product_and_desc
from customer c join
     product p
     on c.id = p.customer_id
group by c.firstname, c.lastname;

不过,我建议第二个参数list_agg()是 ', ' 而不是 ' , '。逗号前的空格看起来有点不寻常。

于 2013-05-17T01:28:33.633 回答
1
select first_name,last_name,wm_concat(product||'-'||descr) as product_and_descr
from tbl1 ,tbl2 where tbl1.id=tbl2.customer_id
group by first_name,last_name;
于 2013-05-17T06:51:23.230 回答