Вставка значений в столбец на основе второй таблицы - PullRequest
0 голосов
/ 24 августа 2011

У меня есть две таблицы table1, table2. Обе таблицы могут быть объединены на основе empID.

У меня есть новый столбец в table1 с именем tabseqno. Я хочу обновить tabseqno таблицы 1 с tabseqno из таблицы 2.

UPDATE TABLE1  SET TABLE1.TABSEQNO =TABLE2.TABSEQNO
WHERE TABLE1.EMPID= TABLE2.EMPID AND TABLE2.GROUPID=99

1 Ответ

0 голосов
/ 24 августа 2011

Или:

update table1 set table1.tabseqno =
  ( select table2.tabseqno from table2
    where table2.empid = table1.empid
    and table2.groupid = 99);

или

update table1 set table1.tabseqno =
  ( select table2.tabseqno from table2
    where table2.empid = table1.empid
    and table2.groupid = 99)
where exists
  ( select table2.tabseqno from table2
    where table2.empid = table1.empid
    and table2.groupid = 99);

в зависимости от того, что вы хотите, чтобы не было соответствующей строки таблицы 2 для строки таблицы 1 (первый оператор установит для table1.tabseqno значение null, а второй вообще не обновит эти строки).

Оба работают, только если подзапрос table2 может возвращать максимум 1 строку для любого empid.

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