-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Labels
component/diagnosticsДоработка / создание диагностикиДоработка / создание диагностики
Description
Описание проблемы, ошибки, которую надо диагностировать
Левое соединение с проверкой на поле из второй таблицы в секции ГДЕ.
Непонятно, соединение должно быть внутренним или условие должно быть в условиях соединения?
Т.е. такой текст запроса наверняка является ошибочным. Какая именно ошибка допущена зависит от того, какой из результатов требуется получить этим запросом.
Пример текста запроса с ошибкой:
ВЫБРАТЬ
...
ИЗ
Левая КАК Левая
ЛЕВОЕ СОЕДИНЕНИЕ Правая КАК Правая
ПО <Условия соединения>
ГДЕ
Правая.Поле = &Параметр
- Если нужны только строки, для которых есть данные в Правой таблице, то нужно использовать внутреннее соединение. С левым соединением результат будет тот же, но производительность может быть хуже.
- Если нужны все записи из Левой таблицы, то условия на поля Правой таблицы должны быть в условиях соединения. С условием в секции
ГДЕрезультат будет другим, возможна ошибка в логике.
Есть ли ещё возможные варианты решаемых таким запросом задач?
Исключение:
ВЫБРАТЬ
...
ИЗ
Левая КАК Левая
ЛЕВОЕ СОЕДИНЕНИЕ Правая КАК Правая
ПО <Условия соединения>
ГДЕ
Правая.Поле is NULL
В этом тексте нет ошибки. В результате нужны только такие записи Левой таблицы, для которых нет подходящих записей в Правой. В этом случае, и в выбранных полях не должно быть полей из Правой таблицы, т.к. все они NULL.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
Не удалось подобрать подходящих ссылок.
Параметры диагностики
Тип Статья на русском
- 🐜 Ошибка
- 👮 Уязвимость
- 💂♂️ Потенциальная уязвимость
- 💩 Качество кода
-
Другое
Важность Статья на русском
- 💔 Блокирующая / Blocker
- ❤️ Критическая / Critical
- 💛 Важная / Major
- 💙 Незначительная / Minor
- 💚 Информационная / Info
- 💞 Другое
Тэги Статья на русском
-
STANDARD- "Нарушение стандартов 1С" -
LOCKINOS- "Не будет работать в другой ОС" -
SQL- "Проблема с запросом" -
PERFORMANCE- "Проблема производительности" -
BRAINOVERLOAD- "Непонятный код" -
BADPRACTICE- "Плохая практика программирования" -
CLUMSY- "Излишние действия" -
DESIGN- "Ошибка в проектировании" -
SUSPICIOUS- "Подозрительный код" -
UNPREDICTABLE- "Непредсказуемо работающий код" -
DEPRECATED- "Устаревшая функциональность" -
ERROR- "Ошибочная конструкция" -
LOCALIZE- "Проблемы локализации"
Время на исправление (минут)
3 минуты
Дополнительная информация
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
component/diagnosticsДоработка / создание диагностикиДоработка / создание диагностики