1

メールアドレスが同じであるテーブルから別のテーブルにデータをコピーしようとしています。

例えば:

表 1 には次のフィールドがあります。
email, title, first_name, last_name, (+ others)

表 2 には次のフィールドがあります。
email, title, first_name, last_name, modified, (+ others)

title、、first_nameをどこlast_nameからコピーtable2したい。table1table1.email = table2.email

そのため、すべてのデータが保持されます。これを、電子メールが一致する場所table2にコピーしたいと思います(つまり、最新の変更済み)。table1table1FIRST 'most recent (by 'modified')' email foundtable2datetime

私はこのようなことを試みていました:

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

4

1 に答える 1