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. html5 - 请问一下写H5的时候 你们都是兼容那些手机2. node.js - npm安装模块时,在cmd上显示的是一条白线,白线前面是一天反斜线转圈圈,然后就出现npm ERR错误了,求帮助,谢谢3. android - java tm platform se binary 占用很多内存4. java - Spring MVC 映射请求问题5. javascript - Vue $refs 为什么无法获取组件对象6. php - 注册验证邮箱失效后操作问题7. mysql自动提交的问题8. python 函数名之后 有一个箭头 这是什么作用?9. java - 做一个视频播放器,想实现一个功能,如果3秒不点击屏幕任何,则下方一个界面布局(显示按钮那些的)自动消失。10. clone - git sourceTree克隆仓库时,都不停弹出Password Required弹窗,即时输入正确的git账号密码还是弹出

网公网安备