我有一个产品表和价格表,其中产品可以有多个价格行。是否可以使用每个产品返回一行的JOIN语句,其中每个产品行的产品ID等于产品ID的价格列?
现在我有这个:
SELECT PT.*, PR.*
FROM `products` AS PT
RIGHT JOIN `prices` PR
ON PR.`product` = PT.`ID`
如果一个产品有4个价格行,我会得到4行作为回应。
答案 0 :(得分:3)
查看wizzbang GROUP_CONCAT函数,它可以很好地完成你想要的(制作一个分隔符分隔的字符串)。
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
SELECT pt.`id`,
group_concat(pr.`price` separator ',')
FROM `products` AS PT
LEFT JOIN `prices` PR ON PR.`product` = PT.`ID`
GROUP BY pt.`id`