![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Update одной таблицы из другой.
SergP © (2005-11-23 02:50:00)Есть 2 таблицы имеющие по 2 идентичных поля.
например:
table1, поля field1, field2 и другие
table2, поля field1, field2 и другие
Нужно обновить значения field2 одной таблицы, значениями field2 из другой для table1.field1=table2.field1
Можно ли это сделать одним запросом update?
Если да, то как? (интересует сам синтаксис запроса)
evvcom (2005-11-23 14:46:00) [1]Для оракла есть merge - 3 в одном: и insert, и update, и delete.
Sergey13 (2005-11-23 09:43:00) [2]
update table1
set table1.field2= (select table2.field2 from table2 where table1.field1=table2.field1)
where...
Не то?
SergP (2005-11-23 09:38:00) [3]Что касается движка/sql сервера, я ведь указывал что Oracle, но видимо потерялось, когда модератор перенес, не подумавши что при переносе темы потеряется дополнительная информация.
А что касается:
> и кстати если для local sql то запрс в [1] вроде даже вполне
> нормальный (правда может ругатся если обьеденение по условию
> table1.field1=table2.field1 дает больше чем 1 результируюшую).
Ну тут может быть 3 варианта:
1. table2.field1 может иметь повторяющиеся значения
2. Может не иметь повторяющихся значений.
3. Может первичным ключем, либо просто уникальным.
В моем случае 1 вариант не встречается.
А что касается синтаксиса запроса, то меня интересует как его написать полностью (если такое возможно с Update), а то как ни пробовал - не проходит, а в книгах и прочей доке, запросы сложнее чем select из двух таблиц с объединением вообще не рассматриваются и примеров нет.
Например как указывается что в запросе участвуют 2 таблицы, при этом изменения происходят в одной?
sniknik (2005-11-23 09:00:00) [4]понятия "синтаксис запроса" в отрыве от движка/sql сервера, диалекта sql считай не существует...
вывод? невозможно, до тех пор пока не будет уточненной инфы по ним.
и кстати если для local sql то запрс в [1] вроде даже вполне нормальный (правда может ругатся если обьеденение по условию table1.field1=table2.field1 дает больше чем 1 результируюшую).
SergP (2005-11-23 02:52:00) [5]обновить=изменить.
что-то типа
update .... set table1.field2=table2.field2 where table1.field1=table2.field1 ...