这很难解释,但我会尽力而为。
我有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。谢谢。
使用的“作弊”解决方案GROUP_CONCAT()。这不会显示与任何主题均不相关的问题的数量:
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