| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PostgreSQL > Написать странный запрос с update |
| Автор: polin11 15.2.2024, 08:34 | ||||
Использую PGSQL, упрощенный запрос выглядит так
хочется переписать запрос для того чтобы попадать в индекс, отдельно для нулевых значений и не нулевых, такого типа
этот запрос неверно определяет Знач, для своего Ключа. Как написать подобный запрос, если не прибегать к CTE? |
| Автор: Akina 15.2.2024, 09:22 |
Вот скажи мне - когда ты в подзапросе пишешь WHERE "Id" = a."Ключ", откуда, по-твоему, возьмётся значение для a."Ключ" - из таблицы подзапроса или из таблицы внешнего запроса? у тебя и там, и там FROM a. Затверди правило - если в запросе участвует более одной таблицы, то ЛЮБАЯ таблица должна иметь УНИКАЛЬНЫЙ в пределах всего запроса алиас, и ЛЮБОЕ имя поля должно включать этот алиас (ну кроме полей обновляемой таблицы, конечно, ибо синтаксис). Хотя как по мне - запрос какой-то жестоко-бессмысленный. Сделай нормальный набор скриптов создания и наполнения исходных таблиц, что ли... и сформулируй собственно задачу, но уже предметно. Запрос, его план, что не устраивает, что хочется получить... |
| Автор: polin11 15.2.2024, 09:59 | ||
не совсем понял как алиас таблицы в подзапросе поможет решить проблему? |
| Автор: Akina 15.2.2024, 19:35 | ||
Должно быть
Тогда хотя бы станет понятна заложенная в запрос логика. С учётом того, что WHERE EXISTS обычно коррелированный, в подзапросе, вероятно, должны быть {alias 1}... |