【问题标题】:Update value of column in one table from a column in another table where ID's do not match从 ID 不匹配的另一个表中的列更新一个表中的列的值
【发布时间】:2020-06-23 22:15:01
【问题描述】:
当 ID 列匹配时我知道该怎么做,当它们不匹配时我不知道该怎么做。我需要用另一个数据库中的列的值更新一个数据库中表的一行中的值。他们没有相同的ID。
UPDATE DevDatabase
SET DevDatabase.ReportData = TESTDatabase.ReportData
Where DevDatabase.SavedReportId = '0B6D01B7-D52E-4799-B809-DA375449AF30'
FROM TESTDatabase.[SavedReport] TEST
where TEST.SavedReportId = '02F62AD5-7DA2-414D-873E-1ED6B922DB53'
我希望上面的代码虽然不正确,但能证明我需要什么。
【问题讨论】:
标签:
sql
sql-server
tsql
join
sql-update
【解决方案1】:
您也可以按照最初的意图使用更新/加入语法:
查询:
UPDATE d
SET ReportData = t.ReportData
FROM DevDatabase.SavedReport d
JOIN TESTDatabase.[SavedReport] t
ON t.SavedReportId = '02F62AD5-7DA2-414D-873E-1ED6B922DB53'
WHERE d.SavedReportId = '0B6D01B7-D52E-4799-B809-DA375449AF30'
【解决方案2】:
使用子查询:
UPDATE DevDatabase.SavedReport
SET ReportData = (SELECT ReportData
FROM TESTDatabase.[SavedReport] TEST
WHERE TEST.SavedReportId = '02F62AD5-7DA2-414D-873E-1ED6B922DB53')
Where SavedReportId = '0B6D01B7-D52E-4799-B809-DA375449AF30'