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

如何正确将tblCounty的CountyID填充至tblCity的CountyID_fk字段?

解决方案:将tblCounty的CountyID填充到tblCity的CountyID_fk字段

你的核心问题是误用了INSERT语句(用于新增数据行),但实际需求是更新tblCity表中已有记录的CountyID_fk字段,同时原语句中的子查询未与外层表关联,导致返回多条结果触发错误。以下是两种可行的修改方案:

方案1:使用JOIN批量更新(推荐,效率更高)

通过JOIN关联两张表,直接匹配对应关系并更新:

UPDATE c
SET c.CountyID_fk = ct.CountyID
FROM tblCity c
INNER JOIN tblCounty ct 
    ON ct.CountyTitle = c.CountyTitle

方案2:使用关联子查询更新

通过关联子查询为每一行匹配对应的CountyID,同时用WHERE EXISTS避免更新无匹配的记录(防止CountyID_fk被设为NULL):

UPDATE tblCity
SET CountyID_fk = (
    SELECT ct.CountyID
    FROM tblCounty ct
    WHERE ct.CountyTitle = tblCity.CountyTitle
)
WHERE EXISTS (
    SELECT 1
    FROM tblCounty ct
    WHERE ct.CountyTitle = tblCity.CountyTitle
)

错误原因说明

  1. 误用INSERT语句:你的需求是填充已有记录的字段,而非新增行,因此必须使用UPDATE而非INSERT。
  2. 子查询未关联外层表:原语句中的子查询返回了所有匹配的CountyID集合,而非对应单条City记录的单个值,因此触发"子查询返回多个值"的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:37:12