メールアドレスが同じであるテーブルから別のテーブルにデータをコピーしようとしています。
例えば:
表 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
FIRST 'most recent (by 'modified')' email found
table2
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'
基本的に、1つのステートメントでこのようなものが必要です..
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