MySQL:如何列出所有带计数功能和连接表?

时间:2014-08-25 04:08:14

标签: mysql sql sorting count

我希望有一个表的输出,其中包含计数,类别和类别(标题)字段中的所有项目(请参阅link1)。但是,我只能在cateogry字段中显示1个结果。正如您在link3中看到的,实际上outlook :: others类别中有很多项。我试图加入该表(请参阅link2)。

我希望得到像这样的结果

18 software :: email :: outlook :: outlook中未读的文件夹

18软件::电子邮件:: outlook ::其他她的老板bb无法同步

18个软件:: email :: outlook ::其他广告帐户被锁定 。

我使用过这个mysql语句但是没有用

SELECT count(*)count,HD_CATEGORY.NAME AS CATEGORY FROM HD_TICKET JOIN HD_CATEGORY ON(HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID)WHERE(HD_TICKET.HD_QUEUE_ID = 1)group by HD_CATEGORY.NAME order by counts desc limit 10

Link1(结果输出)
http://postimg.org/image/62kjzlcvz/

Link2(数据库表)
http://postimg.org/image/hg73asnen

Link3类别与标题
http://postimg.org/image/9wdn5mypd

1 个答案:

答案 0 :(得分:0)

我不确定我理解您的查询,但您应该将HD_TICKET.TITLE添加到group by子句中。

SELECT count(*)  counts
     , HD_CATEGORY.NAME AS CATEGORY
     , HD_TICKET.TITLE  
FROM HD_TICKET   
JOIN HD_CATEGORY 
    ON HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID  
WHERE HD_TICKET.HD_QUEUE_ID = 1  
group by HD_CATEGORY.NAME
      ,  HD_TICKET.TITLE
order by counts desc limit 10

在大多数DBMS中,部分select子句的分组无效,mysql(默认设置)将从组中随机选择一行。您可以通过将ONLY_FULL_GROUP_BY添加到@@ sql_mode

来防止这种情况