Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 减法返回空值_Mysql_Sql_Sql Update - Fatal编程技术网

Mysql 减法返回空值

Mysql 减法返回空值,mysql,sql,sql-update,Mysql,Sql,Sql Update,我试图通过减去该学生未通过的任何课程的学分值来更新学生的tot_cred,takes关系中的分数='F',或当前正在学习,takes关系中的分数为空 但是,上面的查询将符合此条件的任何学生的tot_cred设置为NULL,我无法解释原因 我很抱歉,如果以前有人问过这个问题,我试图搜索相关内容,但找不到许多与减法相关的问题。我是新来的。谢谢大家的帮助。在c.credits UPDATE student as s LEFT JOIN takes as t ON s.ID = t.ID L

我试图通过减去该学生未通过的任何课程的学分值来更新学生的tot_cred,takes关系中的分数='F',或当前正在学习,takes关系中的分数为空

但是,上面的查询将符合此条件的任何学生的tot_cred设置为NULL,我无法解释原因


我很抱歉,如果以前有人问过这个问题,我试图搜索相关内容,但找不到许多与减法相关的问题。我是新来的。谢谢大家的帮助。

c.credits

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
您可以像@JW answer一样使用,也可以使用:


它适用于一个空值和一个F级,但还有3个空值出现。不过,我不认为是联合导致了这个问题。我将查看我的查询并尝试解决它。谢谢你在这个问题上的帮助!
set s.tot_cred = s.tot_cred - COALESCE(c.credits,0)
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 - IFNULL(c.credits, 0)
WHERE t.grade = 'F' OR t.grade IS NULL