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条件在这个结果集中再根据条件进行过滤。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言程序设计和python_c语言和python区别是什么

    c语言程序设计和python_c语言和python区别是什么c语言是编译型语言,经过编译后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发。Python大致上可以理解为解释型语言,Python是可以跨平台的,Python高度集成适合于软件的快速开发。c语言和python的区别1、语言类型不同Python是一种动态类型语言,又是强类型语言。它们确定一个变量的类型是在您第一次给它赋值的时候。c是静态类型语言,一种在编译期间就确定数据类型的语言。…

    2025年7月5日
    5
  • 常用矩阵范数_矩阵相减的范数

    常用矩阵范数_矩阵相减的范数(1)矩阵的核范数:矩阵的奇异值(将矩阵svd分解)之和,这个范数可以用来低秩表示(因为最小化核范数,相当于最小化矩阵的秩——低秩); (2)矩阵的L0范数:矩阵的非0元素的个数,通常用它来表示稀疏,L0范数越小0元素越多,也就越稀疏。 (3)矩阵的L1范数:矩阵中的每个元素绝对值之和,它是L0范数的最优凸近似,因此它也可以近似表示稀疏; (4)矩阵的F范数:矩阵的各个元素…

    2026年1月23日
    3
  • 【转载】反向代理为何叫反向代理?

    【转载】反向代理为何叫反向代理?

    2021年11月20日
    46
  • linux防火墙(firewall、iptable)

    linux防火墙(firewall、iptable)一、iptables防火墙1、基本操作#查看防火墙状态serviceiptablesstatus#停止防火墙serviceiptablesstop#启动防火墙serviceiptablesstart#重启防火墙serviceiptablesrestart#永久关闭防火墙chkconfigiptablesoff…

    2022年5月28日
    39
  • nacos和eureka的区别 面试_nacos和eureka比较哪个好

    nacos和eureka的区别 面试_nacos和eureka比较哪个好Eureka架构图:Eureka架构图1.服务注册(register):EurekaClient会通过发送REST请求的方式,向EurekaServer注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。EurekaServer接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。什么时候注册?在启动微服务的时候。2.服务续约(renew):在服务注册后,EurekaClient会维护一个心跳来持续通知EurekaServer,说明服务一

    2022年8月21日
    19
  • python语言变量命名规则有什么_Python变量命名规则(超级详细)

    python语言变量命名规则有什么_Python变量命名规则(超级详细)Python需要使用标识符给变量命名,其实标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名字)。Python语言的标识符必须以字母、下画线(_)开头,后面可以跟任意数目的字母、数字和下画线(_)。此处的字母并不局限于26个英文字母,可以包含中文字符、日文字符等。由于Python3支持UTF-8字符集,因此Python3的标识符可以使用UTF-8…

    2022年5月3日
    130

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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