我想要一个表的输出,该表具有count,category和category(title)字段中的所有项(请参阅link1)。但是,我只能在“类别”字段中显示1个结果。正如您在link3中所看到的,Outlook :: others类别中实际上有很多项目。我试图加入表(请参阅link2)。
我想要这样的结果
18软件::电子邮件::外观::其他Outlook中未读的文件夹
18软件::电子邮件::外观::其他她的老板BB无法同步
18个软件::电子邮件::外观::其他广告帐户已锁定
。
。
我已经使用了这个mysql语句,但是不起作用
SELECT count(*)计数,HD_CATEGORY.NAME作为从HD_TICKET加入的类别,HD_CATEGORY ON(HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID)在何处(HD_TICKET.HD_QUEUE_ID = 1)在HD_CATEGORY.NAME的组中按计数顺序限制10个desc
Link1(结果输出)
http://postimg.org/image/62kjzlcvz/
Link2(数据库图表)
http://postimg.org/image/hg73asnen
Link3类别的标题
http://postimg.org/image/9wdn5mypd
最佳答案
我不确定我是否理解您的查询,但是您可能应该将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来防止这种情况