来自多表和计数的 mysql group_concat
Posted
技术标签:
【中文标题】来自多表和计数的 mysql group_concat【英文标题】:mysQL group_concat from multi table and count 【发布时间】:2019-08-09 09:12:12 【问题描述】:我尝试将单表转换为多表提取 单表工作完美,但多表提取出错。请任何人都可以帮忙
db-fiddle 单表完美运行 https://www.db-fiddle.com/f/mTHmv2idQwkdPZSqmRPi2Z/4
但是我做的这个多表有什么问题??? https://www.db-fiddle.com/f/eUAUt53neNMBsnP1QxjzGJ/5
我希望下面的输出与我提到的单个表的小提琴相同。你可以检查一下小提琴。
|----------------------|------------------| |卖家 |状态 | |----------------------|------------------| | S1 |C3:3,C1:2,C2:2 | |----------------------|------------------| | S2 |C3:1,C1:2,C2:1 | |----------------------|------------------|【问题讨论】:
已更新。我最初尝试过......有一些错误,我认为可能是格式不正确,但这次让我添加了。 @raj 目前我正在像这个小提琴db-fiddle.com/f/eUAUt53neNMBsnP1QxjzGJ/2 一样退出,这是错误的 【参考方案1】:您获得的记录多于预期的原因是您的查询中有多个联接。
试试下面的。这应该返回给您:
select seller, group_concat(cid,' :', cnt SEPARATOR ',')
from
(SELECT cases.SELLER, cases_cstm.customerid as cid, COUNT(*) as cnt FROM
cases, cases_cstm WHERE cases.id=cases_cstm.id_c GROUP BY cases.SELLER,
cases_cstm.CUSTOMERID) q
group by seller;
如果您需要客户 ID 的计数,您应该在您的选择子句中包含 count(cid)
。希望这会有所帮助!
【讨论】:
现在工作!!!!谢谢拉杰。哦,我得到了错误,我不得不在最上面的选择中使用不同的变量,并在最下面的分组中使用......这是错误的。当我不得不使用卖家时,我正在使用数据库表变量名....cases.SELLER。以上是关于来自多表和计数的 mysql group_concat的主要内容,如果未能解决你的问题,请参考以下文章
C++ std::vector 可以同时处理来自多线程的 push_back 吗?