先运行一个选择
SELECT * FROM [stbl834] A INNER JOIN [uvwCLIENT_HEALTH_PLAN] B ON A.TSN = B.TSN
并验证您是否具有正确的行数以及列中的值是否匹配。这样可以确保您拥有正确的连接键。如果这看起来正确,请使用以下更新
UPDATE [stbl834] SET [HEALTH_PLAN_CATEGORY_VALUE_ID] = B.[HEALTH_PLAN_CATEGORY_VALUE_ID] FROM [stbl834] A INNER JOIN [uvwCLIENT_HEALTH_PLAN] B ON A.TSN = B.TSN
或者,您可以为任何不支持的RDBMS执行此操作 UPDATE..FROM 句法:
UPDATE..FROM
UPDATE stbl834 SET health_plan_category_value_id = (SELECT health_plan_category_value_id FROM uvwclient_health_plan WHERE uvwclient_health_plan.tns = stbl834.tns)
这个解决方案是SQL Ansi兼容的,这意味着它可以工作 任何 RDBMS。请确保子查询( SELECT )只返回给定TNS的记录值,否则你必须确保使用 TOP 要么 LIMIT (RDBMS支持的任何内容)。
SELECT
TOP
LIMIT
Select HEALTH_PLAN_CATEGORY_VALUE_ID, TSN from stbl834 left join uvwCLIENT_HEALTH_PLAN on stbl834.TSN=uvwCLIENT_HEALTH_PLAN.TSN
你需要将它们插入stbl834吗?如果是这样 -
update stbl834 set HEALTH_PLAN_CATEGORY_VALUE_ID = uvwCLIENT_HEALTH_PLAN.HEALTH_PLAN_CATEGORY_VALUE_ID from stbl834 left join uvwCLIENT_HEALTH_PLAN on stbl834.TSN=uvwCLIENT_HEALTH_PLAN.TSN
您也可以试试这个,这可能符合您的目的。
update stbl834 set stbl834.HEALTH_PLAN_CATEGORY_VALUE_ID= uvwCLIENT_HEALTH_PLAN.HEALTH_PLAN_CATEGORY_VALUE_ID inner join uvwCLIENT_HEALTH_PLAN.TSN=HEALTH_PLAN_CATEGORY_VALUE_ID.TSN