我需要根据电子邮件匹配条件更新表,并且需要了解可以解决此问题的SQL查询。
我有2个表“ old_data”和“ new_data”
Old_data contains around 60,000 records and fields "EMAIL"
New_data contains around 90,000 records and fields "EMAIL" "WHITE_NO"
这是我需要帮助的逻辑条件。
Update * from Old_data, New_data SET New_data.WHITE_NO = 'true' WHERE old_data.EMAIL = New_data.EMAIL
它的作用是在old_data表中查找所有电子邮件,并将它们与所有相同的电子邮件匹配到new_data表中,并将WHITE_NO字段值替换为true。
答案 0 :(得分:1)
您需要使用两个表的联接进行更新:
update New_data
inner join old_data on old_data.EMAIL = New_data.EMAIL
set New_data.WHITE_NO = 'true'
答案 1 :(得分:1)
UPDATE new_data
JOIN old_data
ON new_data.EMAIL = old_data.EMAIL
SET new_data.WHITE_NO = 'true';
OR
UPDATE new_data
SET new_data.WHITE_NO ='true'
WHERE new_data.EMAIL IN (SELECT EMAIL FROM old_data);