2012-09-08 173 views
1

说我有看起来像三个表:相互共享关系获取计数

users: 
id 

event_registration: 
id 
user_id 
event_id 

events: 
id 

用户登记的事件并将该登记记录在event_registration。

有没有一种方法可以计算一组给定用户在单个MySQL语句中相互共享的事件计数?我想出了如何为两个用户做到这一点,但我想重构 它支持X个用户(包括只有一个用户)。

回答

1

尝试

select count(event_id) as events 
from event_registration 
where user_id in (1,2,3) 
group by event_id 
having count(distinct user_id) = 3 

你必须调整数3having条款acourding到user_id是你正在使用的号码与您的in条款。