Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.04 c
14-1132192872
SPeller
2005-11-17 05:01
2005.12.11
Вторая мировая и роль США в ней


14-1132162975
Knight
2005-11-16 20:42
2005.12.11
Вопрос к владельцам Nokia 6100... у кого есть прошивка?


2-1133043077
Дмитрий Ка
2005-11-27 01:11
2005.12.11
Как изменить знак перемнной?


2-1132756782
filh
2005-11-23 17:39
2005.12.11
gzip


1-1130999962
kblc
2005-11-03 09:39
2005.12.11
Есть ли у класса интерфейс?