2

私はデータベース構造を持っています

User Table(user id, username, first name,last name)

Event Table(event id,event name, event date)

UserEvent(user id, event id)

すべてのイベントに参加したすべてのユーザーのユーザー名を知りたい

4

3 に答える 3

2

これを行う 1 つの方法は次のとおりです。ユーザーに関連付けられた個別のイベント 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)
于 2012-05-18T04:43:56.243 に答える
0

アイデア :

1) 個別のイベント ID を持つイベントの数をカウントする

2) ユーザーの場合、その個別のイベントを数え、数が同じ場合は表に入れます。

于 2012-05-18T04:47:04.250 に答える
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
于 2012-05-18T04:50:16.960 に答える