我有两张表,一张 Master 和一张 ExtraData。两个表共享列FirstName, LastName, Gender and A_Id
。
我正在处理的查询应该比较两个表和Master 中使用Extra的UPDATE
任何 NULL 值。A_Id
A_Id
做这个的最好方式是什么?我可以比较CONCAT(FirstName, LastName, Gender)
,但我坚持如何根据JOIN
.
我有两张表,一张 Master 和一张 ExtraData。两个表共享列FirstName, LastName, Gender and A_Id
。
我正在处理的查询应该比较两个表和Master 中使用Extra的UPDATE
任何 NULL 值。A_Id
A_Id
做这个的最好方式是什么?我可以比较CONCAT(FirstName, LastName, Gender)
,但我坚持如何根据JOIN
.
您可以在连接中使用许多条件,然后只需将一个源表中的列设置为另一个表中列的值:
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)