如何通过多表匹配关联更新MAIN_TABLE的ID字段?
数据表关联更新解决方案
需求说明
- 对
MAIN_TABLE的CODE字段按规则截取:取前6位拼接第9至11位 - 将截取后的结果与
SUB_TABLE的CODE字段匹配 - 匹配成功后,通过
SUB_TABLE的SUB_ID关联ID_TABLE获取对应ID - 用该
ID更新MAIN_TABLE中的ID字段(示例中目标更新值为2071)
CODE字段截取示例SQL
SELECT SUBSTRING(CODE, 1, 6) + SUBSTRING(CODE, 9, 3) FROM MAIN_TABLE
完整更新SQL语句
UPDATE MAIN_TABLE mt JOIN ( SELECT st.SUB_ID, it.ID, st.CODE AS SUB_CODE FROM SUB_TABLE st JOIN ID_TABLE it ON st.SUB_ID = it.SUB_ID ) sub_match ON SUBSTRING(mt.CODE, 1, 6) + SUBSTRING(mt.CODE, 9, 3) = sub_match.SUB_CODE SET mt.ID = sub_match.ID;
内容的提问来源于stack exchange,提问作者ViNi
相关产品推荐
相关产品推荐

