我有数据库结构选择谁参加了所有选举的所有用户
User Table(user id, username, first name,last name)
Event Table(event id,event name, event date)
UserEvent(user id, event id)
我想知道是谁参加了所有事件
我有数据库结构选择谁参加了所有选举的所有用户
User Table(user id, username, first name,last name)
Event Table(event id,event name, event date)
UserEvent(user id, event id)
我想知道是谁参加了所有事件
这应该做的伎俩
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
下面是做这件事的所有用户的用户名:选择与该用户关联的不同事件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)
一个想法:
1)计数的事件具有不同的事件id
2)对于用户数,计数其不同的事件和如果该号码是相同的,把它在表。
选择所有用户参与的所有事件 选择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