这样的sql更新语句怎么写?
有这样2个表,表A 姓名 班级 成绩
张三 1 90
张三 2 80
李四 1 85
王五 3 88
表B 姓名 年龄
张三 21
李宁 30
王五 25
把表A中成绩字段的值更新成在表B中与表A中相同名字的年龄的值
结果:表A 姓名 班级 成绩
张三 1 21
张三 2 21
李四 1 null
王五 3 25
这个sql语句怎么写啊?
[解决办法]
什么数据库?
update tt from a tt left join b tt1 on tt.姓名=tt1.姓名 set tt.成绩=tt1.年龄
[解决办法]
update a left join b on a. 姓名=b. 姓名 and a.班级=b.班级set a.成绩=b.年龄
[解决办法]
同意楼上!
[解决办法]
update a left join b on a.姓名=b.姓名
set a.成绩=b.年龄
mysql> select * from a;+------+------+------+| 姓名 | 班级 | 成绩 |+------+------+------+| 张三 | 1 | 90 || 张三 | 2 | 80 || 李四 | 1 | 85 || 王五 | 3 | 88 |+------+------+------+4 rows in set (0.00 sec)mysql> select * from b;+------+------+| 姓名 | 年龄 |+------+------+| 张三 | 21 || 李宁 | 30 || 王五 | 25 |+------+------+3 rows in set (0.00 sec)mysql> update a left join b on a.姓名=b.姓名 -> set a.成绩=b.年龄;Query OK, 4 rows affected (0.06 sec)Rows matched: 4 Changed: 4 Warnings: 0mysql> select * from a;+------+------+------+| 姓名 | 班级 | 成绩 |+------+------+------+| 张三 | 1 | 21 || 张三 | 2 | 21 || 李四 | 1 | NULL || 王五 | 3 | 25 |+------+------+------+4 rows in set (0.00 sec)mysql>
[解决办法]
厉害 ,看来要常来来了