2016-10-09 58 views
0

電子商務:說我有兩個表,一個類別,另一個項目。MYSQL選擇類別,其中包含至少兩個元素從另一個表

Categories 
------- 
category_id 
category_name 

Items 
----- 
item_id 
item_name 
category_id 

,我需要選擇我的頁面所有這些類別包含至少項目上&名單。

我也需要知道我有多少類別,所以我可以分頁... 此外,我需要顯示每個類別下的項目數量,如果可能的話與MySQL。

所以我嘗試

SELECT SQL_CALC_FOUND_ROWS *, 
(SELECT * FROM items i WHERE i.category_id = c.category_id) as tot 
FROM categories c 
RIGHT JOIN items i ON i.category_id = c.category_id 
HAVING tot > 1 
LIMIT 10 

但不工作...任何幫助表示讚賞

回答

1

你所尋找的是一個簡單的彙總,你按類別組和清點貨物。

select 
    c.category_id, 
    c.category_name, 
    count(*) as items 
from categories c 
join items i on i.category_id = c.category_id 
group by c.category_id 
having count(*) >= 2 
order by c.category_id 
limit @skip, @show; 

如果你想知道有多少類別符合您的條件:

select count(*) 
from categories c 
where 
(
    select count(*) 
    from items i 
    where i.category_id = c.category_id 
) >= 2; 
相關問題