北京SEO

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

2019/10/10/17:37:06  阅读:2104  来源:谷歌SEO算法  标签: Google

MySQL一条语句更新多个表的方法我们会用到join子查询了,下面我们一起来看看实现方法,MySQL本身是支持一条update语句更新多个表的,有时候这是非常有用的一个特性,代码如下:

  1. Multiple-tablesyntax
  2. UPDATE[LOW_PRIORITY][IGNORE]table_references
  3. SETcol_name1={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}]…
  4. [WHEREwhere_condition]</pre>

于是继续找table_references说明,代码如下:

  1. table_references:
  2. escaped_table_reference[,escaped_table_reference]…
  3. escaped_table_reference:
  4. table_reference
  5. |{OJtable_reference}
  6. table_reference:
  7. table_factor
  8. |join_table
  9. table_factor:
  10. tbl_name[[AS]alias][index_hint]
  11. |table_subquery[AS]alias
  12. |(table_references)

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

一个小尝试,在我的另一篇文章中,我已经用到了该语法,代码如下:

  1. UPDATEtable_a,table_bSETtable_a.age=table_b.ageWHEREtable_a.id=table_b.id;

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

  1. UPDATEtable_a,(SELECTid,ageFROMtable_b)AStbSETtable_a.age=tb.ageWHEREtable_a.id=tb.id;

如果没明白我们再接一个小看一个例子就明白了,代码如下:

  1. createtablestudent
  2. (
  3. student_idintnotnull
  4. ,student_namevarchar(30)notnull
  5. ,city_codevarchar(10)null
  6. ,city_namevarchar(50)null
  7. ); //phpfensi.com
  8. createtablecity
  9. (
  10. codevarchar(10)notnull
  11. ,namevarchar(50)notnull
  12. );
  13. insertintostudentvalues(1,'john','001',null);
  14. insertintostudentvalues(2,'nick','002',null);
  15. insertintocityvalues('001','beijing');
  16. insertintocityvalues('002','shanghai');
  17. insertintocityvalues('003','shenzhen');

有两个表:student & city,现在需要取出 city.name 来更新 student.city_name,两表关联条件是如下代码:

  1. student.city_code=city.code。
  2. updatestudents,cityc
  3. sets.city_name=c.name
  4. wheres.city_code=c.code;

也可以试下面的相关子查询,代码如下:

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

广告内容

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

相关阅读

热门评论

昝辉Zac 昝辉Zac

Zac的SEO博客,坚持12年,优化成为生活。

总篇数171

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法