SELECT id,name,SUM(`lsa`) AS lst FROM
table_a AS sn,
table_b AS fb
WHERE sn.uid=fb.uid
AND COUNT(`lsa`)=6
GROUP BY sn.uid
ORDER BY SUM(`lsa`)我有一个类似于此的查询,显然AND COUNT(lsa)=6位不是有效的语法。我很迷茫。
我想要实现的是一个列表,由lsa和排序,按uid分组,只有当该uid有6个条目时,即在“组”中。我该怎么做?
发布于 2012-01-18 17:50:20
按聚合进行筛选是有效的,但需要进入HAVING子句,而不是使用WHERE。
SELECT id,
name,
SUM(`lsa`) AS lst
FROM table_a AS sn
JOIN table_b AS fb
ON sn.uid = fb.uid /*Using Explicit Join syntax*/
GROUP BY sn.uid, /*And avoiding MySQL GROUP BY extension*/
id,
name
HAVING COUNT(`lsa`) = 6
ORDER BY SUM(`lsa`) 而不是。
https://stackoverflow.com/questions/8914843
复制相似问题