这很难解释,但我会尽我所能。
我有两个具有多对多关系的表;有一个定义关系的链接表。这些表格被命名为问题、问题主题和主题。topic有topicid和topicname字段。question有questionid和questiontext字段。
我想检索一个主题列表和属于该主题的问题数。但是,可以将主题组合在一起,并且应该知道这种组合特有的问题的数量。例如:
主题计数
主题1,主题2 10
专题1 3
专题2 2
以上暗示了topic1和topic2有3个主题,分别是topic1和topic2。剩下的两个问题有主题2。
我正在使用mysql和php。谢谢。
最佳答案
“作弊”解决方案,使用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