gen |
Отправлено: 10.11.2004, 12:56 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Привет всем!
Поскажите, возможно ли обновление данными из другой таблицы одним SQL выражением?
Подробности:
Есть две таблицы -
STAFF
Tab smallint (Unique)
Prof varchar
TABEL_ALL
Tab smallint
Prof varchar (не заполненное поле)
Можно ли выполнить заполнение поля Prof таблицы TABEL_ALL значениями Prof таблицы STAFF по условию: STAFF.tab=TABEL_ALL.Tab.
Решение "в лоб" типа
update tabel_all set tabel_all.prof=staff.prof where tabel_all.tab=staff.tab
конечно же не работает, т.к. синтаксисом SQL не предусмотрено присвоение значения поля таблицы.
Если обходные пути?
Отредактировано gen — 10/11/2004, 14:01 |
|
AVC |
Отправлено: 10.11.2004, 13:19 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
О какой СУБД идет речь?
В большинстве случаев сработает как-то так
CODE |
Update tabel_all a Set
a.prof = (Select b.prof From staff b Where b.tab=a.tab)
|
При условии, что в staff для каждого tab 1 или 0 записей. |
|
gen |
Отправлено: 10.11.2004, 13:38 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
ОК
Все путем!
Проверено на Interbase и Oracle.
Большое спосибо!
|
|