【发布时间】:2013-05-31 08:32:46
【问题描述】:
我试图将一些数据从一个表复制到另一个电子邮件地址相同的表。
例如:
表 1 有字段:email, title, first_name, last_name, (+ others)
表 2 有字段:email, title, first_name, last_name, modified, (+ others)
我想将title、first_name、last_name 从table2 复制到table1,其中table1.email = table2.email。
所以table2 保存了所有数据,我想将这些数据复制到table1,其中table1 中的电子邮件与table2 中的FIRST 'most recent (by 'modified')' email found 匹配(所以最近修改的datetime)。
我正在尝试这样的事情:
INSERT INTO `table1` (title, first_name, last_name)
SELECT title, first_name, last_name from `table2`
WHERE table1.email = table2.email
ERROR: Unknown column 'table1.email' in 'where clause'
所以基本上,我在一个声明中需要这样的东西..
SELECT EMAIL as `originalEmail` FROM `table1`
SELECT title, first_name, last_name FROM `table2`
WHERE table2.email = table1.email
ORDER BY `modified` desc # Get the most recently modified
LIMIT 1 # limit to 1 result (the most recent one)
UPDATE `table1` (title, first_name, last_name) values (*values from above*)
WHERE EMAIL = `originalEmail`
编辑
- 我想UPDATE 而不是INSERT 一个新记录。
【问题讨论】:
-
也许你需要更新?
-
您要更新实际值还是插入新值?
-
为什么会收到
ERROR: Unknown column 'table1.email' in 'where clause'?table1 中的电子邮件列?