单个更新语句更新多行mysql


Single update statement to update multiple rows mysql

我当时正在为一个在线学院管理系统生成定制报告,结果被卡在了这里,

我有一个名为report的主表,它有10行I,e学生,从1到10。属性是roll, namecs101[这是主题代码,并以默认值0创建]。

我有另一个表说each_subject_cs101与字段roll, namemarks。但可能不是所有的10个学生都在这里注册,比如说8个学生在那里(从1到8…为了更简单)。

现在我想要的是更新reportcs101 = markseach_subject_cs101中存在的学生的each_subject_cs101

在一个单独的更新语句中。

注意:roll no字段是两个表的主键

MySQL中的查询是什么??

(p。S:实际上,上面提到的所有结构都更复杂,而且是动态创建的。为了更简单,我在这里使用了别名]

UPDATE report r, each_subject_cs101 escs 
SET r.cs101 = escs.marks
WHERE r.roll = escs.roll

UPDATE report r
JOIN each_subject_cs101 escs
    ON escs.roll = r.roll
    SET r.cs101 = escs.marks;