我有4张桌子
第一表:客户(其记录约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
.....
我想根据需要更新客户信息,因此结果如下。我已经将
update
与inner 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`
非常感谢你。如果有类似问题的帖子已经解决,请纠正我。
最佳答案
如果要使用JOIN
更新,可以尝试此操作。
更新[表]
JOIN [表格] ...
SET [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
编辑
根据您的评论,您需要在
join
表上的district
链接为像这样。
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