我正在尝试将两个表合并为一个表。使用下表的示例,我需要将表 B 的购买日期合并到表 A 的空白购买日期中。表 A 具有与购买日期关联的电子邮件,并且在表 A 中该电子邮件是唯一的。然而,表 B 中有很多电子邮件地址,而且它们并不唯一。当我将两个表合并在一起时,我需要将表 B 中的最新或最大日期放入表 A 中。
出于性能原因,表 A 有约 33.5k 行,表 B 有约 550k 行。
Table A
Email Purchase_Date
----------- ---------------
test@test.ca
test2@test.ca
test3@test.ca
Table B
Email Purchase_Date
----------- ---------------
test@test.ca 2016-08-01 0:00:00
test@test.ca 2016-08-03 0:00:00
test2@test.ca 2016-08-13 0:00:00
test2@test.ca 2016-08-14 0:00:00
test2@test.ca 2016-08-15 0:00:00
test3@test.ca 2016-08-27 0:00:00
最佳答案
您可以使用带有 join
的 update
和子查询来获取 max
日期:
update tablea a
join (
select email, max(purchase_date) purchase_date
from tableb
group by email
) b on a.email = b.email
set a.purchase_date = b.purchase_date
关于mysql - 如何使用替换某些唯一数据来暂时合并 2 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197557/