MySQL:两表更新(用一个表更新另一个表)的SQL语句

2016/03/01 14:02
阅读数 505

用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊。看一个例子就明白了。

create table student(   student_id    int          not null  ,student_name  varchar(30)  not null  ,city_code     varchar(10)  null  ,city_name     varchar(50)  null);
create table city(   code varchar(10) not null  ,name varchar(50) not null);insert into student values(1, 'john', '001', null);
insert into student values(2, 'nick', '002', null);
insert into city values('001', 'beijing');insert into city values('002', 'shanghai');
insert into city values('003', 'shenzhen');

有两个表:student & city,现在需要取出 city.name 来更新 student.city_name。两表关联条件是student.city_code=city.code。

update student s, city c

 set s.city_name = c.name
 
where s.city_code = c.code;

也可以试下面的相关子查询:

update student s set city_name = (select name from city where code = s.city_code);


展开阅读全文
打赏
1
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
1
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部