Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Update c подзапросом [D2005, XP]


ChaosAD ©   (2008-08-11 18:22:00) 

Можно ли выполнить обновление таблицы
update table1
set table1.a=table2.a
where table2 in (при равенстве table1.b=table2.b and table1.c=table2.c)

?


ChaosAD   (2008-08-11 22:10:00) [1]

из гавна надо собрать полу гавно, неужели не понятно
или все привыкли работать по правилам мистера Кода?
вот так из хаоса приходица собирать по крупицам.
Короче придеца делать через Table.
Пасибо гении за подсказки и за телепатию.


Правильный$Вася   (2008-08-11 21:26:00) [2]


> одна с неполной инфой другая частично.

часично и неполно - это не одно и то же?


sniknik   (2008-08-11 21:24:00) [3]

> одна с неполной инфой другая частично.
открываются все новые и новые горизонты...
обсуждаться же может лиш то, что реально приведено...


ChaosAD   (2008-08-11 21:09:00) [4]


> Юрий Зотов

не спеши.
при двух одинаковых таблицах!!! одна с неполной инфой другая частично.
вот в неполную по полю "С" нужно проставить значение из полной по полю "С". В таблицах этих также имеются еще поля... из за них и приходится обновлять


Юрий Зотов   (2008-08-11 20:59:00) [5]

> ChaosAD ©   (11.08.08 20:23) [8]

Вообще-то, после всего тут сказанного могли бы и сами написать. Я в SQL практически дуб, но вот первое:

update t1
set t1.c = (select t2.c from t2 where t1.a=t2.a and t1.b=t2.b)

А вот второе - если этот select возвращает множественное значение, то либо Вы привели не все поля таблиц, либо таблицы эти были спроектированы еще большим дубом, чем даже я.


ChaosAD   (2008-08-11 20:46:00) [6]

• «Начинающим» (вспомогательная конференция. если вам трудно понять самим, что вам нужно или есть желание и способности помогать новичкам — вам сюда) ...


ChaosAD   (2008-08-11 20:38:00) [7]

обе таблицы идентичны, нужна сея операция для проведения обновления, при прошествии времени (обновить номера медполисов).


ChaosAD   (2008-08-11 20:23:00) [8]

t1                 t2
-------       -------
|a      |  =  |a       |
|b      |  =  |b       |
|c      | <--|c       |
-------       -------

ключей нет. нужно проставить значение поля "С" t2 в t1, при равенстве по полям t1.a=t2.a и t1.b=t2.b


Anatoly Podgoretsky   (2008-08-11 20:11:00) [9]


> sniknik ©   (11.08.08 20:04) [6]


> обратится к конкретному человек ума хватило

Чем достиг противоположного результата. Никакого ответа в данной ветке.


sniknik   (2008-08-11 20:04:00) [10]

> где ошибка?
в днк.

> ваш коментарий?
обратится к конкретному человек ума хватило (что не по правилам), а привести конкретные условия для которых пишется запрос (что уже в зубах вязнет от повторов) нет?
вот поэтому и .... up.

> подзапрос возращает множественное значение
с чего бы это? я например вполне допускаю, то (т.к. не обговорено другое) что .f2 ключи.

> в where должно учитываться сразу два условия(... and ....)
попытался бы сначала понять, прежде чем условия ставить...


ChaosAD   (2008-08-11 19:48:00) [11]

подзапрос возращает множественное значение, следовательно не подходит.
Для каждого значения строки свое соответствие.
в where должно учитываться сразу два условия(... and ....)


Правильный$Вася   (2008-08-11 19:38:00) [12]

update t1
set t1.f1=(select t2.f1 from t2 where t1.f2=t2.f2)


ChaosAD   (2008-08-11 19:24:00) [13]


> Anatoly Podgoretsky

ваш коментарий?


ChaosAD   (2008-08-11 19:13:00) [14]

update table1
set field1=table2.field1
where table2.field1 in
(select table2.field1 from table1,table2 where table1.field2=table2.field2 and table1.field3=table2.field3)


где ошибка?


ChaosAD   (2008-08-11 18:45:00) [15]

имеется в виду у обоих таблиц есть одинаковые поля (идентичные). обновить третий столбец первой таблицы на основании третьего столбца второй таблицы при равенстве первых двух обеих таблиц.


Наверх

Титульная страница Поиск, карта сайта Написать письмо