0

级别
我是初学者

我有两张桌子:

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

users
列出每个与会者的详细信息,列 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 )

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

谢谢。

4

2 回答 2

2

创建 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
于 2012-08-29T10:43:53.180 回答
0

尝试这个

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
于 2012-08-29T10:45:27.597 回答