@sendnikkei

Как изменить значения в одной таблице, взяв значения из другой?

Привет ребята! Подскажите дураку, как возможно реализовать следующее.
Есть база данных. В базе данных есть 2 таблицы (ниже: название - структура):
1. tab.1 - || SecondName | LastName | ThirdName | Key ||
2. tab.2 - || SecondName | LastName | ThirdName ||
Мне нужно из tab.2 взять записи со значениями: 'SecondName', 'LastName', 'ThirdName', и в tab.1 для этих записей, обновить значение Key.
Заранее благодарен!
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
@alexalexes
А где первичные ключи в табличках?
Вообще, если таблицы - некие копии друг друга, то обновления записей проворачивают как-то так.
update tab1 t1, tab2 t2   // таблицы, участвующие в Update
set  t1.key = ?                      // устанавливаем параметр key, только непонятно, что задаем
where t1.id = t2.id          // соответствие записей по первичным ключам

Если нужно сделать сложное обновление, сопоставив некую совокупность атрибутов, не привязываясь к ключам, то как-то так.
update tab1 t1, tab2 t2   // таблицы, участвующие в Update
set t1.key = ?                      // устанавливаем параметр key, только непонятно, что задаем
where t1.SecondName = t2.SecondName // допустим, пусть будет обновление key у тех записей, у которых есть полное соответствие атрибутов.
   and t1.LastName = t2.LastName
  and t1.ThirdName = t2.ThirdName
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Обобщенный универсальный вариант:
update table
set ...
from table
join ....
where ...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы