HAVING子句中使用的非分组字段和子查询

时间:2017-07-17 14:24:37

标签: mysql group-by mariadb

在启用了ONLY_FULL_GROUP_BY选项的MariaDB上,我收到错误

  

非分组字段' 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子句中选择的每个字段吗?

1 个答案:

答案 0 :(得分:1)

如果你只需要检查一下auto_variant中是否存在一行,你就不需要一个计数或一组

<!DOCTYPE html>
相关问题