考虑下表:
Users
----------------------
Id | 1 | 2
Name| John| Jack
Cars
----------------------
Id | 14 | 26
Name| Mercedes| BMW
Import
-----------------------
Id | 12 | 34
UserName | John | Daniel
UserId | NULL | NULL
CarName | BMW | Mercedes
CarId | NULL | NULL
SomeOtherId| 45 | 45
我基本上想在其他表中找到 UserId 和 CarId,如果找不到它们,它们仍然为 NULL,
我尝试了类似的东西
UPDATE Import i
SET UserId = ( SELECT Id FROM Users WHERE Name=i.UserName ),
CarId = ( SELECT Id FROM Cars WHERE Name= i.CarName )
WHERE SomeOtherId=45;
在这种情况下,我得到的语法不正确。我该如何解决?在这种情况下,这是一种使用 MERGE 的方法吗?(合并超过 2 个表并使用 WHERE 子句)?谢谢。