百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySQL一条语句更新多个表的方法
分享文章到:

MySQL一条语句更新多个表的方法

发布时间:01/15 来源: 浏览: 关键词:
MySQL一条语句更新多个表的方法我们会用到join子查询了,下面我们一起来看看实现方法。

MySQL本身是支持一条update语句更新多个表的,有时候这是非常有用的一个特性。

Multiple-table syntax

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] …
    [WHERE where_condition]</pre>

于是继续找table_references说明; 

table_references:
    escaped_table_reference [, escaped_table_reference] …

escaped_table_reference:
    table_reference
  | { OJ table_reference }

table_reference:
    table_factor
  | join_table

table_factor:
    tbl_name [[AS] alias] [index_hint]
  | table_subquery [AS] alias
  | ( table_references )

可以看到,update的关键词可以写多个表,每个表也可以是个子查询、也可以是join语句。

一个小尝试

在我的另一篇文章中,我已经用到了该语法:

 代码如下

UPDATE table_a,table_b SET table_a.age=table_b.age WHERE table_a.id=table_b.id;

该语句中的table_b表也可以换成子查询、join子句,比如:

 代码如下

UPDATE table_a,(SELECT id,age FROM table_b) AS tb SET table_a.age=tb.age WHERE table_a.id=tb.id;


如果不没明白我们再接一个小看一个例子就明白了。

 代码如下

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~10元,土豪随意,感谢您的阅读!

共有12人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板