繁体   English   中英

SQL以一对多关系联接-将多行合并为一行吗?

[英]SQL Joins with one to many relationship - Combine the many into one row?

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

现在我有这个:

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

如果一个产品有4行价格,我得到4行。

查找wizzbang GROUP_CONCAT函数,该函数可以很好地完成您想要的操作(创建一个以分隔符分隔的字符串)。

http://dev.mysql.com/doc/refman/5.0/zh/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`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM