|
|
|
Вложенный UPDATE
|
|||
|---|---|---|---|
|
#18+
Можно ли использовать внутри UPDATE'а select из той же таблицы, что апдейтим? Скажем, UPDATE Tbl as T1 SET FIELD=0 WHERE (SELECT Count(*) FROM Tbl as T2 WHERE T2.AnotherFIELD=T1.AnotherFIELD) (использовал alias'ы, т.к. не знаю, как это пишется на самом деле, а alias'ы здесь использовать нельзя) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2002, 18:52:49 |
|
||
|
Вложенный UPDATE
|
|||
|---|---|---|---|
|
#18+
update Tbl1 set Field = ...... from Tbl1 T1 where exists(select 1 from Tbl2 T2 where T2.Field = T1.Field) and .... Ну и так далее, как хочется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2002, 18:58:41 |
|
||
|
Вложенный UPDATE
|
|||
|---|---|---|---|
|
#18+
У меня нет Tbl1 и Tbl2, есть одна таблица, но ее надо обозвать по-разному, чтобы сравнивать значения в подзапросе. Напишу запрос более близкий к тому что у меня: Таблица: create table Tbl (Day INT, Count INT, B BIT) insert into Tbl (Day, ID) values (1, 1) insert into Tbl (Day, ID) values (1, 1) insert into Tbl (Day, ID) values (1, 2) insert into Tbl (Day, ID) values (2, 1) insert into Tbl (Day, ID) values (2, 2) update Tbl as T1 set B=1 where (select count(*) from Tbl as T2 where Day=1 and T2.ID=T1)=1 and Day=2 (т.е. надо сравнить внешний ID и внутренний) суть запроса: на второй день записываем B=1 если в первый день была одна строка с данным ID'ом результатом должно быть: Day ID B 2 1 Null 2 2 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2002, 19:36:30 |
|
||
|
Вложенный UPDATE
|
|||
|---|---|---|---|
|
#18+
update Tbl set B=1 from Tbl as T1 where (select count(*) from Tbl as T2 where Day=1 and T2.ID=T1)=1 and Day=2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2002, 20:09:56 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32049546&tid=1820443]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
98ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 444ms |

| 0 / 0 |
