1.任务要求:
有两张表,student1和student2,要求对比student2中的数据,将name相同的student1中的score换成student2中的score,同时保留student1中name不同的score
student1(学生表一)
student2(学生表二)
在网上搜出了两种选择:
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)
他的执行结果为
虽然名字相同的分数得到了正确的修改,但是名字不同的分数被修改成了空值
第二种:
UPDATE student1 a,student2 b SET a.score=b.score WHERE a.name = b.name
他的执行结果为
他仅仅是把名字相同的分数改掉了,依然保留了名字不同分数
所以这两种sql的执行要注意使用场合
注意:本文归作者所有,未经作者允许,不得转载