在mysql中基于另一个表(4个表)值更新表

zbdgwd5y  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(349)

我有四张table
第一表:客户(2000年左右的记录)

ID      province      regency     district
1       CJ            SE          T district
2       CJ            SE          G district
3       CJ            SE          B district
.....

第二张表:省

ID      province      province_id
1       CJ            33        
2       WJ            32         
3       EJ            31         
.....

第三桌:摄政

ID      regency        province_id
3301    SE city        33        
3302    SE regency     33         
3303    SK city        33         
3304    SK regency     33         
.....

第四张表:地区

ID      district       regency_id
3301    T district     3301        
3302    G district     3301         
3303    A district     3302         
3304    B district     3302         
.....

我想在摄政更新客户,所以结果如下。我已经用过了 updateinner join 以此类推,但没有我需要的结果。

ID      province      regency      district
1       CJ            SE city      T district
2       CJ            SE city      G district
3       CJ            SE regency   B district
.....

我用过这个查询,但根本不起作用。结果一无所获

UPDATE customer
inner JOIN province ON customer.province = province.`name` 
inner join district on customer.district = district.`name`
SET customer.regency = regencie.`name` 
WHERE
    customer.regency = province.`name` 
    AND customer.district = district.`name`

非常感谢你。如果有类似问题的帖子已经解决了,请纠正我。

of1yzvn4

of1yzvn41#

如果你想更新 JOIN ,你可以试试这个。
更新[表格]
联接[表]。。。
设置[col]=[col1]
哪里。。。

UPDATE customer c 
inner join province p on p.province = c.province
inner join regency r on r.province_id = p.province_id
SET c.regency = r.regency

sqlfiddle:http://sqlfiddle.com/#!9/3b0cb6/1号
编辑
从你的评论中你需要 joindistrict 表链接方式
这样地。

UPDATE customer c 
inner join province p on p.province = c.province
inner join regency r on r.province_id = p.province_id
inner join district d on d.regency_id = r.ID
SET c.regency = r.regency
where c.district = d.district

sqlfiddle:http://sqlfiddle.com/#!9/5dc7b2/1

相关问题