在含有GROUP BY的SELECT语句中显示COUNT()为0的结果

问题:

现有表1,表2两张表,表1中有NAME,SEX等列,NAME为主键,表2中有NAME,CASE_NO等列,CASE_NO为主键,现要查询出所有的NAME及各NAME对应的CASE_NO数量,如果没有CASE_NO则计为0, 我写的语句为 SELECT 表1.NAME,COUNT(表2.CASE_NO) FROM 表1,表2 WHERE 表1.NAME=表2.NAME GROUP BY NAME 得到的结果中只有在表2中的NAME的CASE_NO数量,而原本想得到CASE_NO数量为0的项目却没有了 思考了之后发现问题在于WHERE语句在GROUP BY语句之前,可是却不知道应该怎样解决,求高手帮忙,谢谢!

答案:

用 join查询
SELECT 表1.NAME,COUNT(表2.CASE_NO) FROM 表1 left join 表2 WHERE 表1.NAME=表2.NAME GROUP BY NAME

具体用left join 还是 right join 还是inner join 还是full join 你要自己判断;
left 保留左边的数据
right 保留右边数据
inner a,b数据一一对应
full join 两个表数据都保留

来源:百度知道


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。