次の表を考慮してください。
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 句を使用する)? ありがとう。