0

2 つのテーブルがあり、そのうちの 1 つは ID によって最初のテーブルを参照しています

たとえば、最初のテーブルはフィールドを持つ顧客です

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

たとえば、2番目のテーブルはフィールドを持つ製品です

   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;

ただし、2 番目の引数は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 に答える