mysql使用update联表更新的方法

一、前言

之前在java代码里,分2步骤:

1.使用select查询一个结果集
2.根据这个结果集,使用update方法更新数据库

二、sql

现在需要不改动代码,用sql实现这个步骤,样例如下:

update a cs inner join 

(

SELECT cs.class_id,cs.user_id FROM a cs,b ss
WHERE cs.class_id = ss.classid AND cs.user_id = ss.user_id
AND cs.isDel IS NULL
AND ss.num >=10

) rrr on cs.user_id=rrr.user_id and cs.class_id=rrr.class_id 

set cs.type = '1';

说明:

1.sql里有一块,先查询出一个符合条件的结果集
2.然后更新a表,用符合条件的结果集里的数据,把符合条件的a表里的type改成1.

三、备注

还有一种方法,可以把符合条件的a表的id查询出来,然后更新a表的type时,根据id更新,使用多条update语句或者使用in语句都行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想永不停

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值