|
|
|
delete + join
|
|||
|---|---|---|---|
|
#18+
помогите написать запрос по удалению из первой таблицы где есть связь inner join всех связанных по ИД записей со второй таблицей т.е. select t1.* from tab1 t1 inner join tab2 t2 (t1.poleid=t2.tab1id) работает А DELETE tab1 t1 inner join tab2 t2 (t1.poleid=t2.tab1id) НЕ РАБОТАЕТ если писать запрос так: DELETE tab1 t1 where t1.poleid in (select t2.tab1id) from tab2 t2) то план выполнения ужасный - для каждой записи из t1 идет обращение к таблице t2 версия PostgreSQL 9.1.14 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 08:35 |
|
||
|
delete + join
|
|||
|---|---|---|---|
|
#18+
Legushkaесли писать запрос так: DELETE tab1 t1 where t1.poleid in (select t2.tab1id) from tab2 t2) то план выполнения ужасный - для каждой записи из t1 идет обращение к таблице t2 интересно а какой собственно вы план хотите для такой задачи? От того что вы запрос перепишите далеко не факт что план изменится. Приведите explain analyze для начала как я уже много раз предлагал вам вместо невнятных жалоб. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 08:43 |
|
||
|
delete + join
|
|||
|---|---|---|---|
|
#18+
Legushka, Какой-то у тебя эм-эс эс-ку-эль-ный акцент в синтаксисе запроса. В постгре, если что, нужно писать DELETE ... USING. Подробности, не поверишь, в документации ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 08:46 |
|
||
|
delete + join
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, присоединяюсь к USING , но "negative loop" anti-join он не охватывает приходится разнообразить not--exists-ом -- откуда морал -- мс-скльный синтакс поширше будет, поуниверсальней. (хоть и мастдай). а пж опять таки обосра облажалси, выбрав к реализации половинчатый ущербный синтакс. план да -- можно бы привести, как вариант, когда табла2 узкая -- можно WHERE t1.id=ANY(ARRAY(SELECT id FROM tab2)) -- там какая-то разница возникает в планах. не факт, что полезная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=116&tid=1998225]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 349ms |

| 0 / 0 |
