问题:
现有表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 两个表数据都保留
来源:百度知道
如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。