加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL一条语句更新多个表的技巧

发布时间:2022-06-20 14:16:53 所属栏目:MySql教程 来源:互联网
导读:MySQL一条语句更新多个表的方法我们会用到join子查询了,下面我们一起来看看实现方法,MySQL本身是支持一条update语句更新多个表的,有时候这是非常有用的一个特性,代码如下: Multiple-table syntax UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_n
  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:
   可以看到,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
   create table city
  (
     code varchar(10) not null
    ,name varchar(50) not null
  );
   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);
 
 

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读