我試圖從一個表中複製一些數據到另一個電子郵件地址相同的數據。如何更新table1值(從表2中選擇)where table1.email = table2.email
例如:
表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
的新紀錄。
也許你需要更新? – Devart
你想更新實際值還是插入新值? – GMZ
爲什麼你會在'where子句'中得到'ERROR:未知列'table1.email'?'在table1中有email列嗎? – RAS