C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
SQL запрос Update, Update данными из другой таблицы
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.

Большое спосибо!


Вернуться в Работа с базами данных в C++Builder