Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
16.03.2005, 19:31
|
|||
---|---|---|---|
|
|||
Update по условию с соединением. |
|||
#18+
Как правильно написать update для таблицы, где и список обновляемых значений и новые значения определяются через соединение с групповой операцией? На MS SQL я бы написал что-нибудь вроде update M set M.CNT=M.CNT-T.DEC from MASTER M join (select CHILD.MASTERID, count(*) DEC from CHILD where ... group by CHILD.MASTERID ) T on T.MASTERID=M.ID В DB2, как я понимаю, синаксиса update ... from нет. Как подобный update написать правильно и эффективно? Писать что-то вроде UPDATE MASTER M set M.CNT=M.CNT-(select count(*) from CHILD where MASTERID=M.ID) where MASTER.ID from (select distinct CHILD.MASTERID where ... ) как-то не хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.03.2005, 19:33
|
|||
---|---|---|---|
|
|||
Update по условию с соединением. |
|||
#18+
Прошу прощения, не Код: plaintext
Код: plaintext
Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.03.2005, 08:38
|
|||
---|---|---|---|
|
|||
Update по условию с соединением. |
|||
#18+
CREATE TABLE T(pk INT, c1 INT); CREATE TABLE S(pk INT, c1 INT); Standard pre SQL4 UPDATE T SET c1 = (SELECT c1 FROM S WHERE S.pk = T.pk) WHERE pk IN (SELECT pk FROM S); IDS/SQL Server UPDATE T SET c2 = S.c1 FROM T, S WHERE T.pk = S.pk; SQL4 Merge MERGE INTO T USING S ON T.pk = S.pk WHEN MATCHED THEN UPDATE SET c1 = S.c1; Используй последнее ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=43&mobile=1&tid=1605961]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 405ms |
0 / 0 |