Mysql update 使用join更新字段

我的个人博客:逐步前行STEP

在mysql应用中常常需要通过别的表的查询结果来更新本表,但很少会本表的查询结果再来更新本表的,下面就看看从本表查询结果更新本表应该怎么做吧。

表classify:

字段属性
idint(11)
namestring(255)

表production:

字段属性
idint(11)
classify_idint(11)

现在表classify中新增pro_cnt字段来统计一个分类下的商品数量:

字段属性
idint(11)
namestring(255)
pro_cntint(11)

新增字段之后,需要初始更新一下pro_cnt的值为当前分类下的商品数量,首先,通过leftjoin查询出每个分类下的商品数

	select count(production.id) pro_cnt from classify 
	left join production on classify.id = production.classify_id

然后将查询结果与classify再做一个连接,并且使用update…set语法做字段你更新:

	update classify inner join 
	(	
		select classify.id, count(production.id) pro_cnt from classify 
		left join production on classify.id = production.classify_id
	) as tmp
	on using(id)
	set classify.pro_cnt = tmp.pro_cnt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

闲敲代码、落灯花

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

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

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

打赏作者

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

抵扣说明:

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

余额充值