有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊?
背景
项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为
t_dept_members
, 系统中有另外一张表 t_user_info
记录了人员信息。要求将 t_dept_members
中有变化的信息更新到 t_user
表中,这个需求就是「跨表更新」啦
憨B SQL 直接被秒杀
不带脑子出门的就写出了下面的 SQL
看到身后 DBA 小段总在修仙,想着让他帮润色一下😜,于是发给了他,然后甩手回来就是这个样子:
看到这个 SQL 语句我都惊呆了,还能这样写,在无情的嘲笑下,一声 KO 我直接倒下。死也得死的明白,咱得查查这是咋回事啊
Mysql Update Join
我们经常使用 join
查询表中具有(在 INNER JOIN
情况下)或可能没有(在 LEFT JOIN
情况下)另一个表中匹配行的表中的行。
同样,在 MySQL 中, 我们也可以在 UPDATE 语句中使用 JOIN 子句执行跨表更新,语法就是这样:
UPDATE T1, T2,
[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1
SET T1.C2 = T2.C2,
T2.C3 = expr
WHERE condition
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java 多线程究竟能否实现线程池?(Java多线程能实现线程池吗)
- Java 序列化中 getByte 方法的角色究竟是什么?(getbyte方法在java序列化中的角色)
- Java log4j2 究竟可以进行哪些定制化操作?(java log4j2能做哪些定制化)
- 如何在 Java 中实现文件导入数据库?(Java怎么实现文件导入数据库)
- 如何对 Java 中的 Stack 类性能进行优化?(如何优化Java中Stack类的性能)
- Java 中运算符与 C++ 相比有哪些差异?(java中运算符对比C++有何不同 )
- 在 Java 中如何通过反射获取字段的值?(java中怎么通过反射获取字段的值)
- 如何在 Java 中创建类的实例对象?(java怎么创建类的实例对象)
- 如何高效更新Uncomtrade数据库数据
- 如何在 Java 中获取端口数据?(java怎么获取端口数据)