数据库
首页 > 数据库> > 减法返回空值mysql

减法返回空值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