2010-02-24 3 views
0

Должно быть довольно просто.SQL-обновления записей по сравнению с записями из другой таблицы

У меня есть 2 стола. Один из них имеет table1 (ID, имя, other_id), а в другой таблице есть таблица2 (id, name, group, ..)

Я хочу, чтобы table1.other_id был таким же, как table2.id, на основе данных в поля имен на обеих таблицах.

+0

Добро пожаловать в SO! Какой вкус sql вы используете? SQL Server? MySql? – AdaTheDev

ответ

2
UPDATE t1 
SET t1.other_id = t2.id 
FROM Table1 t1 
    JOIN Table2 t2 ON t1.name = t2.name 

Это, конечно, если вы не имеете несколько записей с одинаковым «именем», в противном случае, как бы вы сказать, какая запись с заданным именем, которое вы хотите, идентификатор из table2.

+0

+1, что я думал ... –

0

Это следует сделать это:

update table1 t1 
set other_id = (
    select id 
    from table2 t2 
    where t2.name = t1.name) 

Это будет ошибкой, если table2 имеет несколько записей с таким же именем.

Смежные вопросы