统计参加者 MYSQL/PHP

Posted

技术标签:

【中文标题】统计参加者 MYSQL/PHP【英文标题】:Count attendees MYSQL/PHP 【发布时间】:2012-08-29 10:39:57 【问题描述】:

等级 我是初学者

我有两张桌子:

事件 每个事件具有唯一 eventid 的所有事件的详细信息。

用户 列出每个与会者的详细信息,列 eventname1 和 eventname2 包含他们注册的事件的 eventid。 (注意:特定的 eventid 可以在任一 eventname() 列中,例如 event id 66 可能出现在一个用户的 eventname1 和另一个用户的 eventname 2 中)

我想做的事 我想在表格中附上我所有活动的详细信息,并在每个活动中包含一列(#参加者),其中列出了为该活动注册的用户数量。

我目前所拥有的

   SELECT COUNT( * ) 
    FROM  `users` 
    WHERE  `eventname1` = ( 
    SELECT  `id` 
    FROM  `events` 
    WHERE id =e.g.23 )

我一直在尝试将它与连接一起使用,但我没有得到任何结果。任何建议将不胜感激。

谢谢。

【问题讨论】:

您可以在问题中添加列详细信息吗?问题目前不可读。 【参考方案1】:

创建3张表并分别存储,您可以轻松计数

events
event_id, event_name, event_desc, etc_column

users
user_id, username, etc_colun

attendess_table
attendd_id, user_id, event_id, 

select e.event_name, u.username
from attendess_table at
INNER JOIN users u ON u.user_id = at.user_id
INNER JOIN events e ON e.event_id = at.event_id
where u.user_id = 2

计数

select count(user_id) from attendess_table where user_id = 2

【讨论】:

即使这个答案暗示了对(我假设)OP 的一些修改,最好开始使用标准(正如@Rafee 建议的那样)而不是与困难的表结构作斗争。跨度> 谢谢大家。我同意 Rafee 的看法,下次我会尝试以这种方式对表格进行排序。与此同时,这对我有用:SELECT events., count() FROM events left outer join users ON(newevents.id=users.eventname1) OR (events.id=users.eventname2)【参考方案2】:

试试这个

SELECT u.id,u.name,e.name, count(*)   
FROM   users u
left   outer join events e
on     u.id=e.id
group by u.id,u.name,e.name

【讨论】:

以上是关于统计参加者 MYSQL/PHP的主要内容,如果未能解决你的问题,请参考以下文章

能力验证统计方法

能力验证统计方法

统计期末成绩

计算机研究生可以参加哪些比赛?

redis缓存队列+MySQL +php任务脚本定时批量入库

基于mysql+php073企业考勤请假系统