我想要一个查询(SQL Server 2012)执行以下操作:将数据从一个表更新到另一个没有通用可链接记录的表(很确定我不能只是加入然后更新)。唯一的相似之处是表的结构相同
保持简单(转移 100 多个项目)
- 表 1a: KEY, TagName <-- 其中 a.TagName like 'Tag1'
- 表 1b: DS_KEY, Make, Model <--更新数据的来源
- 表 2a: KEY, TagName <-- 其中 b.TagName like 'Tag2'
- 表 2b: DS_KEY, Make, Model <--更新数据的目的地
所以,
- 表 1a:123,标签 1
- 表 1b:123,测试 1,模型 1
- 表 2a:456,标签 2
- 表 2b:456、NULL、NULL
我有的:
--Query 1
SELECT KEY, TagName, DS_KEY, Make, Model
FROM Table1a
JOIN Table1b
ON Table1a.KEY = Table1b.DS_KEY
Where TagName = 'Tag1'
结果(123、标签 1、123、测试 1、模型 1)
--Query 2
SELECT KEY, TagName, DS_KEY, Make, Model
FROM Table2a
JOIN Table2b
ON Table2a.KEY = Table2b.DS_KEY
Where TagName = 'Tag2'
结果(456,标签 2,456,空,空)
返回我想要使用的混音。从这一点开始对如何更新 Table2b 感到困惑。不能加入他们(至少我不知道怎么做!)。也许联合所有?真的希望我不需要
Update Table2b
Set Table2b.Make =
(SELECT Make FROM Table1a
JOIN Table1b
ON Table1a.KEY = Table1b.DS_KEY)
FROM Table2a
JOIN Table2b
ON Table2a.KEY = Table2b.DS_KEY
Where Table2a.TagName = 'Tag2'
就像我说的,我有大约 100 条记录要设置,似乎需要一种更简单的方法。提前致谢,请原谅任何语法错误,因为我试图解释问题以保持简单(我很累!):)