2017-08-02 61 views
0

我有一个查询按类别显示帖子。我只需要显示前5个类别的结果。我的查询显示类别和类别的数量。该查询显示每个类别中的所有类别和帖子数量。MySQL查询限制类别数

我想限制类别的显示。

我有这个疑问:

SELECT qp_category, name, count(qp_category) as Total 
FROM questionpapers 
INNER JOIN 
questioncategory 
ON 
questionpapers.qp_category = questioncategory.qcid 
GROUP BY qp_category; 

这是表结构,我有

category table 
-------------------------- 
qcid | name | active 
-------------------------- 

post table 
-------------------------------------------------------- 
qpid | title | qp_category | description | date | active 
-------------------------------------------------------- 
+0

怎样的末尾添加“LIMIT”关于您的查询的末尾添加'限5'? 'SELECT qp_category,名称,计数(qp_category)作为总 FROM questionpapers INNER JOIN questioncategory ON questionpapers.qp_category = questioncategory.qcid GROUP BY qp_category LIMIT 5;' –

+0

是的,它是通过将极限工作5. – user2634873

+0

很高兴它帮助和伤心,我没有发布这个答案,但张贴在评论。大声笑 –

回答

0

您需要在您的查询

SELECT qp_category, name, count(qp_category) as Total 
FROM questionpapers 
INNER JOIN questioncategory ON questionpapers.qp_category = questioncategory.qcid 
GROUP BY qp_category LIMIT 5; 
+1

请注意,没有ORDER BY的LIMIT是相当无意义的 – Strawberry

0

我想你需要什么是极限:

SELECT qp_category, name, count(qp_category) as Total 
FROM questionpapers 
INNER JOIN 
questioncategory 
ON 
questionpapers.qp_category = questioncategory.qcid 
GROUP BY qp_category 
LIMIT 5; 
+0

和上面相同的注释 – Strawberry

0

限制应有所帮助。

SELECT qp_category, name, count(qp_category) as Total 
FROM questionpapers 
INNER JOIN questioncategory ON questionpapers.qp_category = questioncategory.qcid 
GROUP BY qp_category 
LIMIT 5; 

FYI:如果SQL Server然后使用TOP如果MySQLPostgreSQL然后使用LIMIT

+0

同样,请注意,没有ORDER BY的LIMIT是相当无意义的 – Strawberry

+1

不能同意更多,但没有提及排序类别。如果不需要序列,那么使用ORDER BY子句是开销。 – JRG

+0

不是。如果有人想要某件东西的前5件,则需要ORDER BY,即使在提供了GROUP BY子句的情况下也是如此。本手册更详细地介绍了这一点 – Strawberry