Mysql SQL WHERE不过滤我的结果

Mysql SQL WHERE不过滤我的结果,mysql,sql,Mysql,Sql,我想筛选出小于3的结果,但每当我添加WHERE语句时,查询就会失败。我的问题出了什么问题?我正在使用MySQL Workbench 3.7 SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies FROM sales AS s INNER JOIN customers AS c ON c.id=s.customer_id GROUP BY s.customer_id WHERE veggies > 2" 谢谢! Yoni其中的应该

我想筛选出小于3的结果,但每当我添加WHERE语句时,查询就会失败。我的问题出了什么问题?我正在使用MySQL Workbench 3.7

SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies  
FROM sales AS s
INNER JOIN customers AS c
ON c.id=s.customer_id
GROUP BY s.customer_id
WHERE veggies > 2"
谢谢!
Yoni

其中的
应该是
具有

SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies
FROM sales s INNER JOIN
     customers c
     ON c.id = s.customer_id
GROUP BY s.customer_id
HAVING veggies > 2;

您的查询生成了语法错误(即未运行),或者在
分组依据
处停止,并忽略了
其中

需要在
分组依据
而非
其中
之后使用
HAVING

SELECT 
    c.name, COUNT(DISTINCT s.product_id) AS veggies
FROM 
    sales AS s
    INNER JOIN customers AS c ON c.id = s.customer_id
GROUP BY 
    s.customer_id
HAVING 
    veggies > 2
。(单击此链接将进入回答此问题的页面)

希望这能奏效

SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies'  
FROM sales AS s
INNER JOIN customers AS c
ON c.id=s.customer_id
WHERE veggies > "2"
GROUP BY s.customer_id
通过交换这两行

GROUP BY s.customer_id
WHERE veggies > "2"
分组总是在WHERE之后

除此之外,您还缺少一个大约2的开场白

WHERE veggies > 2"

以及在第一行末尾不必要的单引号(')

查询必须符合语法