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