级别
我是的初学者
我有两张桌子:
事件
每个事件具有唯一事件ID的所有事件的详细信息。
用户
列出每位与会者的详细信息,列eventname1和eventname2包含他们注册的活动的eventid。(注意:特定的事件id可以出现在eventname()列中,例如,事件id 66可以出现在一个用户的eventname1中,而另一个用户则出现在eventname2中)
我想做什么
我想回显一个包含我所有事件详细信息的表,并在每个事件中包含一列(#Attendees),列出为该事件注册的用户数量。
到目前为止我有什么
SELECT COUNT( * )
FROM `users`
WHERE `eventname1` = (
SELECT `id`
FROM `events`
WHERE id =e.g.23 )
我一直在尝试将其与联接结合使用,但我没有取得任何进展。如有任何建议,我们将不胜感激。
谢谢。
创建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
尝试这个
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