Обновление записей SQL по сравнению с записями из другой таблицы - PullRequest
0 голосов
/ 24 февраля 2010

Должно быть довольно просто.

У меня есть 2 таблицы. У одного из них есть таблица1 (идентификатор, имя, other_id), а у другой таблицы есть таблица2 (идентификатор, имя, группа, ..)

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

Ответы [ 2 ]

2 голосов
/ 24 февраля 2010
UPDATE t1
SET t1.other_id = t2.id
FROM Table1 t1
    JOIN Table2 t2 ON t1.name = t2.name

Это, конечно, при условии, что у вас нет нескольких записей с одним и тем же "именем", в противном случае, как вы скажете, для какой записи с данным именем вы хотите использовать идентификатор из таблицы 2.

0 голосов
/ 24 февраля 2010

Это должно сделать это:

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

Это не удастся, если table2 имеет несколько записей с одинаковым именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...