You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL跨表JOIN插入记录时如何正确匹配填充table_1经纬度字段

问题根因

你误用了INSERT语句:INSERT的作用是向表中新增全新的行,而非更新表中已存在行的字段值。
你的语句执行逻辑是:匹配到两表address相等的记录后,把查到的经纬度作为新行插入table_1,由于你没有给新行指定address字段的值,新插入的行address字段默认就是NULL;而原本就存在的、已经填好city_1/city_2/city_3的三行记录从头到尾没有被修改,所以它们的经纬度依然是NULL,和你看到的错误输出完全吻合。

修复方案
  • 第一步:先清理之前错误插入的脏数据
    DELETE FROM table_1 WHERE address IS NULL;
    
  • 第二步:改用UPDATE JOIN语法更新已有行的经纬度字段,这才是关联匹配后更新存量数据的正确写法,适用于MySQL等绝大多数主流关系型数据库:
    UPDATE table_1
    INNER JOIN table_2 ON table_1.address = table_2.address
    SET table_1.latitude = table_2.latitude,
        table_1.longitude = table_2.longitude;
    

执行完成后查询table_1,就能得到你预期的、地址和经纬度一一对应的结果。

内容的提问来源于stack exchange,提问作者Kash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:24:12