В MariaDB с включенной опцией ONLY_FULL_GROUP_BY
я получаю сообщение об ошибке
Негруппирующее поле 'vcount' используется в предложении HAVING.
при выполнении запроса
SELECT c.* FROM
automobile_company c
LEFT OUTER JOIN (SELECT company_id, COUNT(*) AS vcount FROM automobile_variant GROUP BY company_id) vc
USING (company_id)
WHERE c.automobile_type = 0 AND vc.vcount > 0;
Но в запросе нет даже предложения HAVING
.
- Это потому, что MariaDB переписывает запрос для оптимизации?
- Можно ли переписать приведенный выше запрос, не перемещая GROUP BY за пределы подзапроса?
- Является ли мой единственный вариант использовать простое LEFT OUTER JOIN без подзапроса и упоминать каждое поле, которое необходимо выбрать в предложении GROUP BY?
optimizer_switch='condition_pushdown_for_derived=off'
. Отправьте отчет об ошибке по адресу jira.mariadb.org. - person elenst   schedule 17.07.2017