Iangyl
@Iangyl
Размышляю, практикуюсь и учусь.

Как заполнить таблицу из другой по условию?

У меня есть таблица Employee:
607f02bbaa24b288580975.png
pos_id есть внешним ключем на таблицу Position:
607f031957fc9771203683.png

В таблице Employee есть поле position, в котором написаны должности работников, все те должности имеются в таблице Position.

Как мне запросом определить pos_id, чтобы номер pos_id в таблице Employee совпадал с номером pos_id в таблице Position, при этом position таблицы Employee был равен pos_name таблицы Position?
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
сцепить таблицы по position (inner join) и тогда можно id из справочника должностей присвоить в id справочника сотрудников

update Employee 
set pos_id=Position.pos_id -- очевидно что слева обновляемая таблица
from Emploee
inner join Position on Position.pos_name=Employee.position


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

з.ы. возможно будет полезным предварительно оценить глазами select с аналогичным join чтобы убедится что большая часть или все записи "вяжутся" и возможно обернуть в ltrim(rtrim(...)) обе стороны связки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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