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)
上一篇 2022年4月24日 下午6:40
下一篇 2022年4月24日 下午6:40


相关推荐

  • Leetcode: Plus One

    Leetcode: Plus One

    2022年2月7日
    46
  • 一篇文章弄懂Java多线程基础和Java内存模型

    一篇文章弄懂Java多线程基础和Java内存模型文章目录一、多线程的生命周期及五种基本状态二、Java多线程的创建及启动1.继承Thread类,重写该类的run()方法2.通过实现Runnable接口创建线程类3.通过Callable和Future接口创建线程三、Java内存模型概念四、内存间的交互操作五、volatile和synchronized的区别写在前面:提起多线程大部门同学可能都会皱起眉头不知道多线程到底是什么、什么时候可以用到、用…

    2022年5月22日
    40
  • c# taskscheduler使用场合_hbase shell put

    c# taskscheduler使用场合_hbase shell put这里记录下TaskScheduler的简单用法。使用场景:在使用Task的时候,大家都知道用TaskFactory.StartNew可以用来创建一个Task。这里如果创建10个,那么这10个Task就各自放飞直接运行了。一般情况下是没什么大问题,如果这10个中的每个Task非常耗CPU或者内存,而公司的产品又是非常考验配置成本(比如一体机,移动设备等),就需要让这10个Task按照一定要求执行,比如串行执行,从而节省资源、让机器还可以顺畅去干别的事情。Task…

    2022年10月11日
    4
  • OpenClaw安装完全指南(适用小白)

    OpenClaw安装完全指南(适用小白)

    2026年3月13日
    3
  • linux内核 5.0,Linux Kernel 5.0 正式发布,FreeSync支持[通俗易懂]

    linux内核 5.0,Linux Kernel 5.0 正式发布,FreeSync支持[通俗易懂]LinusTorvalds已经取得了进展,刚刚发布了Linux5.0稳定内核,最初是作为Linux4.21内核周期提供主线AMDRadeonFreeSync支持,持续开发英特尔Icelake和其他新CPU功能,罗技高分辨率滚动功能,网络改进等等。在今天的LinuxKernel5.0版本中,创建者LinusTorvalds评论道,“LinuxKernel5.0发布的最后一周并不完…

    2022年5月30日
    40
  • Linux中搭建Nginx环境[通俗易懂]

    Linux中搭建Nginx环境[通俗易懂]CentOs7环境中一、安装pcre依赖 1.下载 本地上传或者联网下载pcre压缩文件依赖 2. 解压pcre压缩包 命令:tar -zxvf pcre-8.37.tar.gz 3. 在解压目录下执行 ./configure 在当前目录运行configure文件 …

    2022年6月13日
    32

发表回复

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

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