我正在尝试从表 SERVICE_INFO
中的类似列更新表中的ACCOUNT_GROUP
列BILL_INFO_DETAIL
该列具有要BILL_INFO_DETAIL
的外键。每个BILL_INFO_DETAIL
可以有一个SERVICE_INFO
。
我尝试了这段代码,但它没有选择正确的SERVICE_INFO
,因为 WHERE
子句没有按我的预期工作:
UPDATE BILL_INFO_DETAIL
SET ACCOUNT_CODE = (SELECT TOP (1) si.ACCOUNT_CODE
FROM SERVICE_INFO si
WHERE si.SERVICE_CODE = SERVICE_CODE);
BILL_INFO_DETAIL
ACCOUNT_CODE
中的所有项目都设置为SERVICE_INFO
的第一ACCOUNT_CODE
似乎这不是那么简单。请指教。
好的。进一步挖掘后,我从以下答案中发现了如何在更新查询中具有内部联接:https://stackoverflow.com/a/1293347/481656
我同样修改了我的查询:
UPDATE b
SET b.ACCOUNT_CODE = s.ACCOUNT_CODE
FROM BILL_INFO_DETAIL b
INNER JOIN SERVICE_INFO s ON b.SERVICE_CODE = s.SERVICE_CODE
效果很好。
橡皮鸭。