统计参加者 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的主要内容,如果未能解决你的问题,请参考以下文章