好吧,它的晚了,所以这可能很明显,但我遇到了一些麻烦。MySQL计数值(使用group by?)基于2个表
我有2个表格。
Filter
-
id
catId
value
所有的值应该是唯一的,这样这个查询得到所有的价值观和他们的 “ID” S
select value as prodVal, id
from Filter
where catId = 7 group by prodVal
该查询返回此...
id = 82, value = 'filter1'
id = 92, value = 'filter2'
etc.. etc...
我需要然后将该“id”列表并在第二张桌子上处理,即
prodFilters
-
id
filterId
productId
所以我需要算多少“FilterID”的出现次数在“prodFilters”的存在对于在之前的查询拉升每一个“ID” ......
FOREACH(ID从以前的查询)做.. 。
select count(*) from prodFilters
where filterId = {value from last query}
group by filterId
有没有什么办法让这一切都通过一个查询来完成,而不是在运行第一查询,然后后运行多个查询?
任何帮助,非常感谢。
不知道我理解使用'组by'没有聚合功能的原因是什么? AFAIK不可能这样做 – Sathya 2012-01-02 10:04:00
@Sathya:'SELECT f FROM GROUP BY f'与'SELECT DISTINCT f FROM a'相同。是的,这是可能的。 – 2012-01-02 10:09:43
@ypercube虽然我知道这是可能的,但是我不知道MySQL允许'SELECT x,y从GROUP BY z'与'SELECT DISTINCT x,y from a'相同吗?Oracle会在那里发出错误 – Sathya 2012-01-02 10:15:37