【发布时间】:2018-04-12 23:08:22
【问题描述】:
我需要更新我的 SQL 表 [LDH_Provider_Crosswalk] 中的“ProvTypeDesc”列。我已经创建了该列并将所有值设置为空。
这需要从表 [LevelofCareCrosswalk] 上的 ProvType_Desc 列填充。思考过程是使用来自 [LevelofCareCrosswalk] t2 的 ProvType_Desc 更新来自 [LDH_Provider_Crosswalk] t1 的 ProvTypeDesc,其中 t1.provtype = t2.provtype。 (两个表的 provtype 列都有与 prov 类型描述相关的适当值。
我不确定在这种情况下是否应该使用“插入”或“更新”语句。也许我应该使用另一种说法?无论如何,这是我的代码的样子,但它不起作用。它只是将数据从 t2 附加到 t1 的底部。
我尝试插入语句:
INSERT INTO [LDH_Provider_Crosswalk] ([ProvTypeDesc])
SELECT t1.ProvType_Desc
FROM [LevelofCareCrosswalk] t1
JOIN [LevelofCareCrosswalk] t2
ON t1.ProvType = t2.ProvType
我对更新声明的尝试:
UPDATE [LDH_Provider_Crosswalk]
SET t1.[ProvTypeDesc] = t2.ProvType_Desc
FROM [LDH_Provider_Crosswalk] t1
JOIN [LevelofCareCrosswalk] t2
ON t1.ProvType = t2.ProvType
表格中的示例数据:
[LDH_Provider_Crosswalk] t1(此表需要值)
ProvType | ProvTypeDesc
11 |空
43 |空
37 |空
表格中的示例数据:
[LevelofCareCrosswalk] t2(此表包含值)
ProvType | ProvTypeDesc
11 |危机接收中心
43 |治疗性寄养
37 |基于中心的喘息
做了更多的研究。看起来更新语句是要走的路。
【问题讨论】:
-
看起来您应该使用带有 where 子句的更新语句。
-
请查看编辑。
标签: mysql sql sql-update conditional-statements insert-into