gpt4 book ai didi

mysql - 两个带左连接的计数相乘

转载 作者:可可西里 更新时间:2023-11-01 06:27:39 29 4
gpt4 key购买 nike

我正在尝试获取一个查询,该查询为我提供来自表 Users 的用户名、来自表 Job2User 的用户拥有的工作数量,以及来自表 Place2User 的用户拥有的地点数量。

以下查询将两个计数列的值相乘。例如,如果用户 1 的作业计数应为 2,地点计数应为 4,则用户 1 行中的两列都将显示“8”。我不确定我做错了什么:

SELECT `UserName`, COUNT(`Job2User`.`UserID`), COUNT(`Place2User`.`UserID`) 
FROM `Users`
LEFT JOIN `Job2User` ON `Job2User`.`UserID`=`Users`.`UserID`
LEFT JOIN `Place2User` ON `Place2User`.`UserID`=`Users`.`UserID`
GROUP BY `UserName`;

最佳答案

您应该使用 count( distinct ...) 来计算唯一值。不要计算用户 ID(外键),而是计算引用表的主键。

参见 docs here

您得到 8 个记录,因为您从工作返回 2 条记录,从地点返回 4 条记录。由于您没有计算不同的值,因此您得到 2*4 = 8。

关于mysql - 两个带左连接的计数相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381433/

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