左连接的SQL查询和前5的最大值计数

时间:2017-03-31 13:27:39

标签: php sql

我有2个表作为类别和任务,在类别中我有2个字段作为catID和catName,而在任务i中只有1个字段作为catID可以重复。我想要的是有一个SQL查询来匹配task.catID与类别表来获取catName,作为回报我想验证TASK表中该catname的计数。我尝试了一些不同的查询,但无法检索结果。查询如下。

SELECT categories.catId, categories.catName, MAX(catName)
FROM tasks
    LEFT JOIN categories ON tasks.catId = categories.catId
WHERE tasks.catId = categories.catId

第二个查询是

SELECT MAX(catId), count(catid) as countof
from tasks
group by catId
ORDER BY `countof` DESC
LIMIT 5

我的桌子就像是

Category                   task
catID --- catName          catID
1         ABC1              1
2         ABC2              1
3         ABC3              1
4         ABC4              2
5         ABC5              3
6         ABC6              2
7         ABC7              5
8         ABC8              5

我希望得到前5名的结果。

catName  catName Count
ABC1      3
ABC2      2
ABC5      2

在这方面的任何帮助将不胜感激。请帮助我得到这些结果。

2 个答案:

答案 0 :(得分:1)

你的第二个查询几乎就在那里。这应该给你你想要的东西:

select Category.catName, Count(Category.catName) countof
from Task
join Category on Category.catID = Task.catID
group by Category.catID
order by countof desc limit 5

答案 1 :(得分:0)

这个网站总能帮助我完成我的任务。赞赏老年人和专家帮助青少年的回应。

select categories.catName, Count(categories.catName) countof
from tasks
join categories on categories.catID = tasks.catID
group by categories.catID
order by countof desc limit 5