我有这个SQL查询,这使我有点挣扎。
SELECT c.Threat_Type, COUNT(*) FROM BORE.NormalToilet c
LEFT JOIN BORE.EnragedToilet p on p.Toilet_ID = c.Toilet_ID
GROUP BY c.Threat_Type
这是输出:
+--------------+--------+
| Threat Type | Count |
+--------------+--------+
| Portable | 26 |
| Japanese | 1 |
| Toilet | 1 |
| Assassin | 3 |
+--------------+--------+
现在这是此查询的问题:
0
不是1
。如果尝试使用INNER JOIN
,则不包含带有的字段1
。这是正确的行为(因为没有匹配项),但是我想用它0
代替1
。使用LEFT JOIN
,它只是说1
,这是非常不正确的。
我究竟做错了什么?
在评论中记入a_horse_with_no_name和vkp。如果他们最终发布了自己的答案,请随时投票删除该答案。
您想要的不是count(*)
计数行,而是count(p.Toilet_ID)
计数行所在的行p.Toilet_ID is not null
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句