java - 数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑
巴扎黑
巴扎黑 2017-04-18 10:18:14
[Java讨论组]

我现在批量往数据库里导正式数据(sql insert),但是数据中有三列分别是岗位,办事处,大区,给的数据中只给了岗位的值,办事处的值可以通过岗位值在岗位表查到,大区的值可以通过办事处的值在办事处表里查到。现在我已经把其他数据都导进去了,只剩办事处和大区没有值,我该如何批量更新这两列的值啊

导入的数据的表:

岗位表:

办事处表:

本人sql不是很好,希望sql大神能给出来解惑一下,拜谢~

巴扎黑
巴扎黑

全部回复(3)
阿神
//更新办事处:
UPDATE 导入的数据的表 
AS a
JOIN 岗位表 
AS b
SET a.OFFICE_CODE = b.OFFICE_CODE
WHERE a.STATION_CODE = b.STATION_CODE

//更新大区:
UPDATE 导入的数据的表 
AS a
JOIN 办事处表
AS b
SET a.ZONE_CODE = b.ZONE_CODE
WHERE a.OFFICE_CODE = b.OFFICE_CODE
PHPz
UPDATE TABLE1 t1, TABLE2 t2 SET t1.OFFICE_CODE=t2.OFFICE_CODE WHERE t1.STATION_CODE=t2.STATION_CODE;
PHP中文网

适用于 mysql

update tb_import as i inner join (
select s.station_code, s.office_code, o.zone_code from tb_station as s
inner join tb_office as o on s.office_code=o.office_code
) as z 
set i.office_code=z.office_code, i.zone_code=z.zone_code

适用于 mssql postgresql

update tb_import set office_code=z.office_code, zone_code=z.zone_code from (
select s.station_code, s.office_code, o.zone_code from tb_station as s
inner join tb_office as o on s.office_code=o.office_code
) as z 
where tb_import.station_code=z.station_code
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号