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

请求编写SQL更新语句:同步LOADS表site_mgr_id至对应SITES表default_MGR_ID

正确更新LOADS表site_mgr_id字段的SQL语句

需求说明

通过关联关系将LOADS表的site_mgr_id字段更新为对应SITES表的default_MGR_ID值,关联逻辑为:

  • LOADS表的device_id关联DEVICES表的ID
  • DEVICES表的site_id关联SITES表的ID

原语句问题

你提供的SQL存在括号未闭合的语法错误,且嵌套子查询的写法在数据量较大时效率偏低。

推荐解决方案

方案1:使用JOIN方式更新(更高效)

这种写法适配MySQL、PostgreSQL等多数数据库,通过多表关联直接完成更新:

UPDATE loads
JOIN devices ON loads.device_id = devices.id
JOIN sites ON devices.site_id = sites.id
SET loads.site_mgr_id = sites.default_MGR_ID;

方案2:修正嵌套子查询写法

如果坚持使用子查询,需要补全缺失的括号,同时统一字段名(原语句中default_site_mgr_id与SITES表的default_MGR_ID不匹配,需修正):

UPDATE loads 
SET loads.site_mgr_id = (
    SELECT s.default_MGR_ID 
    FROM sites s 
    WHERE s.id = (
        SELECT d.site_id 
        FROM devices d 
        WHERE d.id = loads.device_id
    )
);

注意事项

  • 确保DEVICES表的site_id与SITES表的ID存在有效关联,否则子查询可能返回NULL,导致site_mgr_id被更新为NULL
  • 若LOADS表中存在device_id未在DEVICES表匹配到的记录,两种方案都会保留原site_mgr_id值(MySQL环境下),具体行为可能因数据库类型略有差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:42:27