2012-05-18 48 views

回答

0

这应该做的伎俩

SELECT u.id as user_id, u.username 
FROM USER U, 
(
     SELECT COUNT(EVENT_ID) AS EVENT_COUNT 
     FROM EVENT 
     ) AS E 
    INNER JOIN (
     SELECT UDSER_ID, COUNT(EVENT_ID) AS EVENT_COUNT 
     FROM USEREVENT 
     GROUP BY USER_ID 
     ) AS UE ON U.USER_ID = UE.USER_ID 
WHERE E.EVENT_COUNT = UE.EVENT_COUNT 
+0

选择所有用户参与的所有事件 选择u.id,u.username FROM AUTH_USER U, (SELECT COUNT(ID)AS EVENT_COUNT FROM SecureVirtualElection_event)为E INNER JOIN( SELECT u_id_id,COUNT(e_id_id)AS EVENT_COUNT FROM SecureVirtualElection_userrequestpool GROUP BY u_id_id )AS UE WHERE E.EVENT_COUNT = UE.EVENT_COUNT AND u.id = UE.u_id_id; – user1003121

2

下面是做这件事的所有用户的用户名:选择与该用户关联的不同事件ID的数量以及该事件ID的总数。

select * 
from User u 
where (
    select count(*) from (
     select distinct ue.EventId 
     from UserEvent ue 
     where ue.UserId=u.UserId 
    ) 
) = (select count(*) from Event) 
0

一个想法:

1)计数的事件具有不同的事件id

2)对于用户数,计数其不同的事件和如果该号码是相同的,把它在表。