【发布时间】:2015-10-13 06:33:59
【问题描述】:
您好,我正在使用以下查询来显示 id 与第一个表中的数字相同的行数,我还有 2 个表。如果我只留下一个计数,一切都可以正常工作,但使用双重计数选择我会得到相同的结果,这是错误的:
'SELECT c.*, count(s.userID) as count_consulta, count(a.userID) as count_asesoria
FROM users as c
LEFT JOIN consulta AS s ON s.userID = c.userID
LEFT JOIN asesoria AS a ON a.userID = c.userID
GROUP BY c.userID DESC'
我得到了这个:
count_consulta = 15
count_asesoria = 15
应该在哪里
count_consulta = 3
count_asesoria = 5
欢迎任何帮助。谢谢!
【问题讨论】:
-
您能找到
count(distinct s.userID)和count(distinct a.userID)吗?如果id在一个表中出现多次(也许你有多个字段的复合主键来打破多对多关系),除非你特别要求值与众不同。 -
这样我在两者上都得到了结果 1
-
那我不知道你为什么期待
3和5?听起来这两个表包含 15 条记录,所有记录都链接到 1 个唯一的id。您能否详细说明3和5的来源?... -
表咨询 - 有 3 行,表 asesoria 有 5 行,其中包含 userID = 64。所以从主表用户中,我选择用户 ID 64,然后选择咨询和 asesoria 中的所有行,其中用户 ID = 64
-
顺便说一下,我已经更改了consulta和asesoria列的ID名称,结果仍然错误。