mysql UPDATE 同一表不同字段

分类表:

id cid
1 10
2 12
3 9
4 22

数据表:

id cid pid
1 10 1
2 10 1
3 12 2
4 22 4
5 9 3

数据表的cid和分类表cid一样。

新增数据表pid字段,现在要根据数据表的cid(查询分类表的id)来生成pid,要怎么写sql语句?

mysql数据库 UPDATE a,b SET b.pid = a.id where b.cid = a.cid

https://blog.csdn.net/czd3355/article/details/71302441思路可以参考一下这个,如果你想一条sql语句做成,这个是不可能的。

select b.id,b.cid,a.id,a.pid
from 数据表 As a,分类表 As b
where a.cid=b.cid

注释:
在SQL中,可以通过AS关键字为表定义别名。

update datamanager d inner join category c on d.cid = c.cid set d.pid = c.id;

可以实现你要的效果

UPDATE t_data d,t_category c SET d.pid = c.id where d.cid = c.cid;

update a set a.pid=b.id from t_data a join t_category b on a.cid=b.cid
希望对你有所帮助