1

我有一个产品表和一个价格表,其中一个产品可以有多个价格行。是否可以执行一个 JOIN 语句,该语句返回每个产品的一行,其中产品等于产品 ID 的每个价格行的价格列?

现在我有这个:

SELECT PT.*, PR.* 
FROM `products` AS PT 
RIGHT JOIN `prices` PR 
    ON PR.`product` = PT.`ID`

如果一种产品有 4 行价格,我会得到 4 行作为响应。

4

1 回答 1

4

查找 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`
于 2012-06-03T00:37:26.710 回答