多表更新
Posted neil-learning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多表更新相关的知识,希望对你有一定的参考价值。
最近在写SQL多表更新时遇到问题,网上找了找,几乎都是这样:
1.update t1 set t1.c2 = t2.c2 from t2 where t1.c1 = t2.c1 2.update t1 set t1.c2 = t2.c2 from t1 inner join t2 on t1.c1 = t2.c1
但是根本行不通,在mysql8.0版本的官网文档中查找时,只有关于将子查询作为派生表的做法:
UPDATE items, (SELECT id FROM items WHERE id IN (SELECT id FROM items WHERE retail / wholesale >= 1.3 AND quantity < 100)) AS discounted SET items.retail = items.retail * 0.9 WHERE items.id = discounted.id;
自己尝试了几次,MYSQL8.0版本的多表查询可以如此表示:
UPDATE t1,t2 SET t1.count = t1.count+1,t2.count = t2.count+1 WHERE t1.t1_id= t2.t2_id
可行。
以上是关于多表更新的主要内容,如果未能解决你的问题,请参考以下文章