【发布时间】:2014-12-20 11:19:05
【问题描述】:
我对下面显示的查询有疑问。它总是为快照和 adm 返回相同的值。而且返回的值也不是我所期望的。
SELECT
domains.name, count(snapshot_info.snapshot_uuid) as snapshot, count(users_domains.uuuid) as adm
FROM
domains, snapshot_info, users_domains
WHERE
domains.duuid = snapshot_info.duuid
AND
users_domains.duuid = domains.duuid
group by name;
返回:
domain1 33 33
domain2 40 40
domain3 3 3
此查询有效并返回正确的值
SELECT
domains.name, count(snapshot_info.snapshot_uuid) as snapshot
FROM
domains, snapshot_info
WHERE
domains.duuid = snapshot_info.duuid
group by name;
返回
domain1 3
domain2 20
domain3 17
所以,如您所见,问题是在我添加 users_domains 加入时引入的。
有什么建议吗?
【问题讨论】:
-
拥有每个表的样本数据集和通用表结构会很有用。当我们不知道结构是什么样子以及预期结果应该是什么时,调试 SQL 有点困难。
-
您是否尝试过只运行查询的第二个参数?比如加入snapshot_info到user_domains
标签: mysql sql left-join mariadb jointable