读书人

这样的sql更新语句如何写

发布时间: 2012-02-16 21:30:36 作者: rapoo

这样的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.年龄
[解决办法]

SQL code
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.年龄

SQL code
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>
[解决办法]
厉害 ,看来要常来来了

读书人网 >SQL Server

热点推荐