我想通過一個查詢,通過line_items表彙總產品skus列表。我抽象我的用例的一個簡單的例子:SQL彙總查詢與Postgres的一對多關係
我預期的結果是這樣的:
id name skus
1 mike bar sku1,sku2,sku3
2 bort baz sku4
給出模式和數據,如:
產品
id sku
1 sku1
2 sku2
3 sku3
4 sku4
line_items
id order_id product_id
1 1 1
2 1 2
3 1 3
4 2 4
個
地址
id name
1 'bill foo'
2 'mike bar'
3 'bort baz'
訂單
id address_id total
1 2 66
2 3 99
這裏有一個工作的查詢,但它是不正確的,我得到的所有產品每一個訂單。我WHERE
應使用orders.id
http://sqlfiddle.com/#!15/70cd7/3/0
不過,我似乎無法使用orders.id
?我猜我需要使用JOIN
或LEFT JOIN
或以某種方式改變我的查詢事物的秩序......
http://sqlfiddle.com/#!15/70cd7/4
'array_to_string(ARRAY_AGG(..),..)'可以用'string_agg()' –