<分区>
我意识到已经有几个与这个问题类似的问题 ( here are three ),但我已经阅读了其中的许多问题,但无法根据我的具体情况给出答案 (也就是说,我是个脑残 n00b)。
我的终极目标
创建“最受欢迎”组的列表,其中最受欢迎的位于顶部。人气是由成员(member)人数决定的。每个组都有成员数和引用数;我想运行一个查询来获取这两个计数。
表结构
群组成员
+--------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+---------+----------------+
| member_id | int(10) | NO | PRI | None | |
| group_id | int(10) | NO | PRI | None | |
+--------------------+------------------+------+-----+---------+----------------+
group_quotes
+--------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+---------+----------------+
| quote_id | int(10) | NO | PRI | None | |
| group_id | int(10) | NO | PRI | None | |
+--------------------+------------------+------+-----+---------+----------------+
组数据
+--------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+---------+----------------+
| entry_id | int(10) unsigned | NO | PRI | None | auto_increment |
| title | varchar(100) | NO | | None | |
| url_title | varchar(75) | No | | None | |
+--------------------+------------------+------+-----+---------+----------------+
当前(损坏的)查询
我已经尝试了以下(以及它的关闭变体),但结果是每个表中条目数的倍数:
SELECT group_quotes.group_id, COUNT(group_quotes.group_id) AS numquotes, COUNT(group_members.group_id) AS nummembers
FROM group_quotes, group_members
GROUP BY group_quotes.group_id
ORDER BY numquotes
DESC LIMIT 5
...within the query loop, output the group's title, etc...
例如:当我上次运行此查询时,group_members
表中有 7 个条目,group_quotes
表中有 3 个 group_id #10 实例;我得到了第 10 组的成员数和引用数 21(正确的数字应该是 2 和 3)。
有人介意看一下并告诉我哪里出错了吗?