MySQL跨表、多表更新SQL语句总结

MySQL跨表、多表更新SQL语句总结MySQL跨表、多表更新SQL语句总结

大家好,又见面了,我是你们的朋友全栈君。

单表更新
UPDATE table_name SET field1=new-value1, field2=new-value2 WHERE field=value
多表更新

情况一:

UPDATE userA as a , userB as b SET a.num = b.num*0.5 WHERE a.id = b.uid AND a.deleted_at is null;
UPDATE userA as a INNER JOIN userB as b ON a.id = b.uid SET a.num = b.num*0.5 WHERE AND a.deleted_at is null;

情况二:

UPDATE userA as a INNER JOIN userB as b ON a.id = b.uid SET a.num = b.num*0.5,a.state = 1 WHERE a.id = b.id 
AND a.deleted_at is null
AND (
	b.gb_name = 'a'
	OR b.gb_name = 'b'
	OR b.gb_name = 'c'
	OR b.gb_name = 'd'
	OR b.gb_name = 'e'
	OR b.gb_name = 'f'
	OR b.gb_name = 'g'
);

扩展:
inner join和where区别:
1 WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。

2,测试结果inner join效率更快
事例:
Inner jion 原理:

SELECT
	*
FROM
	A
INNER JOIN B ON B.ID = A.ID
AND B.State = 1
INNER JOIN C ON B.ID = C.ID

where 原理:

SELECT
	*
FROM
	A
INNER JOIN B ON B.ID = A.ID
INNER JOIN C ON B.ID = C.ID
WHERE
	B.State = 1

INNER JOIN时会产生一个结果集,WHERE条件在这个结果集中再根据条件进行过滤。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105820.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java可重入锁与不可重入锁

    java可重入锁与不可重入锁所谓重入锁,指的是以线程为单位,当一个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,而其他的线程是不可以的。synchronized和  ReentrantLock都是可重入锁。可重入锁的意义在于防止死锁。实现原理是通过为每个锁关联一个请求计数器和一个占有它的线程。当计数为0时,认为锁是未被占有的;线程请求一个未被占有的锁时,JVM将记录锁的占有者,并且将请求计数器置为1…

  • 工业数据采集平台

    工业数据采集平台乐芯IOT数据采集平台产品是杭州乐芯科技有限公司为满足工业4.0大型集团工厂推出的新一代数据采集平台级产品,可满足单一平台(一个服务器)同时采集各类设备,同时兼容各种协议,单服务器压力测试达1000台,已经稳定在大型集团用户稳定运行。实现各种工业设备数据采集,包括数控机床数据采集、切割机数据采集、机器人数据采集、PLC数据采集、各种工业仪表(各类传感器、智能电表等)。并实现数据对接各大工业平台(如:根云平台、施耐德平台、阿里云平台等)。

  • 数据库导入sql文件_mysql导入sql文件命令

    数据库导入sql文件_mysql导入sql文件命令Sql文件导入数据库-保姆级教程,铁打的保姆,希望对大家能有所帮助,不要忘了点赞+收藏哦

  • 哈希算法是对称算法还是非对称算法_对称加密和非对称加密原理

    哈希算法是对称算法还是非对称算法_对称加密和非对称加密原理哈希算法和·Hmac算法

    2022年10月23日
  • Sublime Text 使用介绍、全套快捷键及插件推荐

    Sublime Text 使用介绍、全套快捷键及插件推荐

  • 配置tomcat的环境变量

    配置tomcat的环境变量配置Tomcat的环境变量注意:配值tomcat之前要将JDK的JAVA_HOME和path都配置好,否则后续会出现Tomcat无法启动或者闪退等问题。1.首先下载tomcat,并且解压到目录:2.第二步鼠标右键计算机->属性->高级系统设置,进去之后,点击环境变量,如下图所示3.第三步开始配置tomcat的环境变量,新建系统变量名CATALINA_BASE,值为tomcat的安装路径,如下图所示:4.第四步新建系统变量CATALINA_HOME,值tomcat

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号