gpt4 book ai didi

mysql - 如何通过对mysql中另一个表中的字段进行分组来从两个不同的表中获取两个字段的计数

转载 作者:可可西里 更新时间:2023-11-01 08:44:51 25 4
gpt4 key购买 nike

我有三个表 projectsdiscussionscomments

我试过这样的:

SELECT p.PRO_Name, COUNT( d.DIS_Id ) AS nofdisc, COUNT( c.COM_Id ) AS nofcom 
FROM projects p
LEFT JOIN discussions d ON p.PRO_Id = d.PRO_Id
LEFT JOIN comments c ON d.DIS_Id = c.DIS_Id
GROUP BY p.PRO_Name LIMIT 0 , 30

但它从 discussions 中获取所有行,并且 comments 的计数与 discussions 的计数相同。

最佳答案

count 计算给定参数的非null 值的数量。您拥有的连接将为每个评论创建一行,其中 dis_idcom_id 都不是 null,因此它们的计数是相同的。由于这些是 ID,您只需计算 distinct 的出现次数即可获得您想要的响应:

(编辑:根据评论中的要求添加了一个 order by 子句)

SELECT    p.PRO_Name, 
COUNT(DISTINCT d.DIS_Id) AS nofdisc,
COUNT(DISTINCT c.COM_Id) AS nofcom
FROM projects p
LEFT JOIN discussions d ON p.PRO_Id = d.PRO_Id
LEFT JOIN comments c ON d.DIS_Id = c.DIS_Id
GROUP BY p.PRO_Name
ORDER BY 2,3
LIMIT 0 , 30

关于mysql - 如何通过对mysql中另一个表中的字段进行分组来从两个不同的表中获取两个字段的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com