![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
polin11 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 6.6.2015 Репутация: нет Всего: нет |
Использую PGSQL, упрощенный запрос выглядит так
хочется переписать запрос для того чтобы попадать в индекс, отдельно для нулевых значений и не нулевых, такого типа
этот запрос неверно определяет Знач, для своего Ключа. Как написать подобный запрос, если не прибегать к CTE? |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Вот скажи мне - когда ты в подзапросе пишешь WHERE "Id" = a."Ключ", откуда, по-твоему, возьмётся значение для a."Ключ" - из таблицы подзапроса или из таблицы внешнего запроса? у тебя и там, и там FROM a. Затверди правило - если в запросе участвует более одной таблицы, то ЛЮБАЯ таблица должна иметь УНИКАЛЬНЫЙ в пределах всего запроса алиас, и ЛЮБОЕ имя поля должно включать этот алиас (ну кроме полей обновляемой таблицы, конечно, ибо синтаксис). Хотя как по мне - запрос какой-то жестоко-бессмысленный. Сделай нормальный набор скриптов создания и наполнения исходных таблиц, что ли... и сформулируй собственно задачу, но уже предметно. Запрос, его план, что не устраивает, что хочется получить... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
polin11 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 6.6.2015 Репутация: нет Всего: нет |
не совсем понял как алиас таблицы в подзапросе поможет решить проблему? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Должно быть
Тогда хотя бы станет понятна заложенная в запрос логика. С учётом того, что WHERE EXISTS обычно коррелированный, в подзапросе, вероятно, должны быть {alias 1}... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PostgreSQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |