mysql - 这个SQL哪不对
问题描述
1.统计任务提交情况2.A(id,name)人员表,B(bid,aid, mission)任务提交记录表,aid 对应id,mission为字符串字段,一个人可提交多次任务,示例数据 id name 1 张三 2 李四 3 王五
bid aid mission1 1 xxxxx2 1 yyyyy3 2 zzzz
sql: select A.name,if(mission<>null,1,0) as mnum from A leftjion B on B.aid= A.id orderby id得到是name mnum张三 0张三 0李四 0王五 0
这个if怎么不起作用的????本来最终想得到如下效果,那么SQL怎么写name 任务次数张三 2李四 1王五 0
问题解答
回答1:这句亲测成功
select A.name,sum(if(mission is not null,1,0)) as ’任务次数’ from A leftjion B on B.aid= A.id group by A.id order by A.id desc回答2:
SELECT NULL IS NULL, NULL IS NOT NULL, NULL = NULL, NULL <> NULL你分别跑下 你就知道为什么你的if不起作用了。
回答3:按照SQL规范,所有和NULL运算的结果都是NULL,所以对NULL的判断需要使用特殊的方法
1、IFNULL函数2、mission<>null 改为 mession is not null
相关文章:
1. javascript - 在react中写行间样式的whiteSpace不生效2. 浅谈Vue使用Cascader级联选择器数据回显中的坑3. html5 - chrome下的a标签download属性无法调出另存为的下载框4. 为啥最大化个窗口还得找一堆理由?5. html5 - express4 + socket.io 如何在connection的回调外边使用socket.emit方法6. javascript - windos下第一次用Django无法正确创建工程目录7. css3 - css box-shadow 单边 单角阴影8. javascript - canvas压缩图片的原理是什么9. CSS3可否做出这个效果?10. css3 - 我的css用less写的,eclipse的jsp文件要修改css很麻烦,怎么解决?

网公网安备