我有一张表product_size
:product_id
,size
,size_id
另一个表product
:product_id
,productname
我想获得如下输出。 例如: -
productname, [20, 25 , 30]
答案 0 :(得分:0)
目前还不清楚[20, 25 , 30]
究竟是什么。我可以想到两个可能的答案,他们在这里:
假设[20, 25 , 30]
是size_id
s,这是一个查询:
SELECT
productname,
array_agg(size_id)
FROM
product
JOIN product_size
USING (product_id)
GROUP BY
productname;
请参阅documentation on Aggregate Functions。
假设[20, 25, 30]
是产品的尺寸,例如[length, width, height]
:
SELECT
productname,
ARRAY[
(SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'x'),
(SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'y'),
(SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'z')
]
FROM
product;