好吧,它的晚了,所以這可能很明顯,但我遇到了一些麻煩。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