update使用inner join
一、update 基础语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
上面是我们常见的更新表的方式,其实我们还可以去另外一张表的数据来更新当前的表数据,如现在就有这样子一个要求,将某一条记录show_order字段设置为最高+1。
表结构如下:
查询的sql如下:
UPDATE week_recommand w INNER JOIN
(SELECT (IF(MAX(wr.show_order) IS NULL, 0, MAX(wr.show_order))) as show_order from week_recommand wr ) b
SET w.show_order = b.show_order + 1 WHERE uid = ''
这里是将uid = 111的记录的show_order设置为最高+1,其实原理是,表连接后,会产生一个类似于临时的视图这么一个东西
同样,我们可以使用子查询的方式实现上面的功能
UPDATE week_recommand w
SET w.show_order = (select b.show_order from (SELECT (IF(MAX(wr.show_order) IS NULL, 0, MAX(wr.show_order))) as show_order from week_recommand wr ) b ) + 1
WHERE uid = ''
致谢:感谢您的阅读!
update使用inner join的更多相关文章
- SQL UPDATE with INNER JOIN
mysql - SQL UPDATE with INNER JOIN - Stack Overflowhttps://stackoverflow.com/questions/14491042/sql- ...
- Delete,Update与LEFT Join
UPDATE:UPDATE A SET ApproverID=NULL FROM [SH_MaterialApplyBuyBill] A LEFT JOIN [SH_MaterialApplyBuyB ...
- LLBLGen update table with join
Table1 id Name 1 xxx 2 ooo Table2 Table1Id Table1Name Column1 Column2 Column3 1 sss xxxx xxxx xxxx 2 ...
- UPDATE INNER JOIN 两表联合更新
UPDATE B_READMETER_HANDWORK INNER JOIN B_READMETER_ORDER_SP ON B_READMETER_HANDWORK.ID = B_READMETER ...
- 组以逗号分隔的子串及跨平update join
下列语句可以对组以逗号分隔的子串 set @device_cd_array += ', ' set @device_cd_array += @nodeid ,, '') update时要join表要先 ...
- SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法
在SQL Server中,UPDATE和DELETE语句是可以结合INNER/LEFT/RIGHT/FULL JOIN来使用的. 我们首先在数据库中新建两张表: [T_A] CREATE TABLE ...
- [转]MySQL update join语句
原文地址:https://www.jianshu.com/p/f99665266bb1 在本教程中,您将学习如何使用MySQL UPDATE JOIN语句来执行跨表更新.我们将逐步介绍如何使用INNE ...
- MySQL与SQLServer的update left join语法区别
需求: 表A 字段 A_ID, A_NAME, B_ID 表B 字段 B_ID, B_NAME 需求把A的所有A_NAME更新为相应的B的 B_NAME. mysql做法: UPDATE A LEFT ...
- mysql update 的时候使用left join和where语句
在使用update语句的时候我们有时候需要利用left join 关联表,以下是正确操作: 效果,让指定的order表id为1,2,3数据的finish_at字段更新为freports表的create ...
随机推荐
- Codeforces 316G3 Good Substrings 字符串 SAM
原文链接http://www.cnblogs.com/zhouzhendong/p/9010851.html 题目传送门 - Codeforces 316G3 题意 给定一个母串$s$,问母串$s$有 ...
- 003 python中的内置函数
一:如何查看内置函数 1.命令 dir(__builtins__) 2.效果 二:具体的用法 1.input 简单使用: 2.type 返回变量的类型 3.str 将类型转变为字符串 4.isinst ...
- README 语法记录
转自:nblogs.com/liugang-vip/p/6337580.html 正文: 1.标题的几种写法: 第一种: 前面带#号,后面带文字,分别表示h1-h6,上图可以看出,只到h6,而 ...
- 轻松3步设置sublime text2/sublime text3的预览浏览器
转https://www.cnblogs.com/swii/p/5888494.html 1,打开sublime 依次选择 tools > build system > new build ...
- HDU 1811 Rank of Tetris 【拓扑排序】+【并查集】
<题目链接> 题目大意: 给你N个点(编号从0到N-1)和M个关系,要你判断这个图的所有点的顺序是否可以全部确定.不过对于任意点的关系可能存在A>B或A<B或A=B三种情况,如 ...
- Xamarin Essentials教程屏幕状态DeviceDisplay
Xamarin Essentials教程屏幕状态DeviceDisplay 由于移动设备型号众多,采用的显示屏幕也千差万别.为了获取较好的显示效果,应用程序往往需要获取设备的显示状态,如屏幕参数. ...
- 2159 ACM 杭电 杀怪 二维费用的背包+完全背包问题
题意:已知经验值,保留的忍耐度,怪的种数和最多的杀怪数.求进入下一级的最优方案. 思路:用二维费用的背包+完全背包问题 (顺序循环)方法求解 什么是二维费用的背包问题? 问题: 二维费用的背包问题是指 ...
- Java技能提升之路
James收集Java技能提升方面的资料,分为:基础篇.提高篇.高级篇… 给出“入口”,自我提升 1. Java工程师成神之路:http://www.hollischuang.com/archives ...
- mysql case when then else end 的用法
case when then end 改语句的执行过程是:将case后面表达式的值与各when子句中的值进行比较,如果两者相等,则返回then后的表达式的值,然后跳出case语 句,否则返回else子 ...
- 基于layer简单的弹层封装
/** * 产生长度为32的Guid字符串 */ function getGuid32() { var rt_str = String.fromCharCode(65 + Math.floor(Mat ...