2012-01-30 1 views
0

У меня есть две таблицы data1 и data2. Данные 1 содержат 2 столбца, адрес электронной почты и имя, но столбец имен пуст.MySQL Вставляет данные в таблицу 1, если соответствующая запись найдена в таблице 2

emailaddress name 
email1 
email2 
email3 

Data2 Содержит также содержит 2 колонки, EmailAddress и имя, и имеет больше записей, чем data1

email address name 
email1   name1 
email1b   name1b 
email2   name2 
email2b   name2b 
email3   name3 
email3b   name3b 

Я пытаюсь написать запрос SQL, который сравнивает столбец адреса электронной почты из Data1 и data2 , и когда он находит совпадение, соответствующее имя из Data2 вставляется в соответствующее поле имени для data1.

Data1 бы должен выглядеть следующим образом после того, как запрос был запущен

emailaddress name 
email1   name1 
email2   name2 
email3   name3 

Я просто не могу показаться, чтобы выяснить, как это сделать. Любая помощь очень ценится.

ответ

1

Дайте этому попытку:

UPDATE data1 a, Data2 b 
SET a.name= b.name 
WHERE a.emailaddress = b.emailaddress 
+0

Это именно то, что я собирался напечатать. –

+0

@ nolt2232 PERFECT! Это получилось великолепно. Спасибо за помощь. Но последнее, что именно делает «а» и «б»? Являются ли эти переменные? – user1177227

+0

Это просто псевдонимы для имен таблиц. Просто ярлык, чтобы вы могли набрать «a», а не набирать «Data1» всюду. – nolt2232

0

попробовать это

Эта ссылка отображается только результат присоединяемой таблицы.

SELECT a.emailaddress, 
     b.name 
FROM Data1 a INNER JOIN Data2 b 
       ON a.EmailAddress = b.emailaddress 

UPDATE

этот запрос обновления Data1 таблицы.

UPDATE a 
    SET a.name = b.name 
    FROM Data1 a INNER JOIN Data2 b 
       ON a.EmailAddress = b.emailaddress