如何解决从多对多表中检索分组
使用的“作弊”解决方案GROUP_CONCAT()
。这不会显示与任何主题均不相关的问题的数量:
SELECT
TopicIds
, COUNT(*) AS QuestionCount
FROM
( SELECT
QuestionId
, GROUP_CONCAT(TopicId ORDER BY TopicId) AS Topics
FROM
QuestionTopic
GROUP BY
QuestionId
) AS grp
GROUP BY
Topics
解决方法
这很难解释,但我会尽力而为。
我有2个具有多对多关系的桌子;有一个定义关系的链接表。这些表分别命名为Question,QuestionTopic和Topic。主题具有字段TopicID和TopicName.Question具有字段QuestionID和QuestionText。
我想检索主题列表以及属于该主题的问题数量。但是,可以将主题归为一组,并且应该知道该组合所独有的问题数。举个例子:
主题| 数数
主题1,主题2 | 10
主题1 | 3
主题2 | 2个
上面的内容暗示主题1和主题10有3个独特的问题,主题分别为主题1和主题2。剩下的2个问题都有topic2。我正在使用MySQL和PHP。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。