电子商务:说我有两个表,一个类别,另一个项目。
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
但不起作用......感谢任何帮助
答案 0 :(得分: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;