我有两个表,一个Master和一个ExtraData。两个表共享列FirstName, LastName, Gender and A_Id
。
我正在处理的查询应使用Extra中的UPDATE
比较两个表和A_Id
Master中A_Id
的任何NULL值。
最好的方法是什么?我可以比较CONCAT(FirstName, LastName, Gender)
,但我仍然坚持如何根据JOIN
更新列。
答案 0 :(得分:4)
您可以在连接中使用许多条件,然后只需将一个源表中的列设置为另一个表中列的值:
UPDATE Master
JOIN ExtraData
ON Master.FirstName = ExtraData.FirstName
AND Master.LastName = ExtraData.LastName
AND Master.Gender = ExtraData.Gender
SET Master.A_Id = ExtraData.A_Id
WHERE Master.A_Id IS NULL
请注意,JOIN条件可以更简洁(因为列的名称相同):JOIN ExtraData USING (FirstName, LastName, Gender)