减法返回空值mysql
作者:互联网
UPDATE student as s
LEFT JOIN takes as t
ON s.ID = t.ID
LEFT JOIN course as c
ON t.course_id = c.course_id
SET s.tot_cred = s.tot_cred - c.credits
WHERE t.grade = 'F' OR t.grade IS NULL
我正在尝试通过减去学生未通过的任何班级的学分值来更新学生的tot_cred,成绩为“ F”或当前正在接受成绩为IS NULL.
但是,对于满足此条件的任何学生,上面的查询都将tot_cred设置为NULL,但我不知道为什么.
如果以前有人问过这个问题,我深感抱歉,我尝试搜索相关内容,但找不到很多与减法相关的问题.我是stackoverflow的新手.谢谢大家的帮助.
解决方法:
在c.credits上添加COALESCE
set s.tot_cred = s.tot_cred - COALESCE(c.credits,0)
标签:sql-update,sql,mysql 来源: https://codeday.me/bug/20191031/1973801.html