1.UPDATE student1 a SET score = (SELECT b.score FROM student2 b WHERE b.name = a.name)
2.UPDATE student1 a,student2 b SET a.score=b.score WHERE a.name = b.name

其实这两种修改方式得出来的结果并不相同,如果要实现任务需求得选用第二种方式

下面我将这两种语句的执行结果进行了对比:

UPDATE student1 a SET score = (SELECT b.score FROM student2 b WHERE b.name = a.name)
他的执行结果为
mysql 根据一张表更新另一张表_技术
虽然名字相同的分数得到了正确的修改,但是 名字不同的分数被修改成了空值
UPDATE student1 a,student2 b SET a.score=b.score WHERE a.name = b.name
他的执行结果为
第二种结果
他仅仅是把名字相同的分数改掉了,依然保留了名字不同分数
mysql 根据一张表更新另一张表_sql_02
所以这两种sql的执行要注意使用场合