0

レベル
初心者です

私は2つのテーブルを持っています:

events イベント
ごとに固有の eventid を持つすべてのイベントの詳細。

users
各出席者の詳細を列 eventname1 および eventname2 にリストし、参加者がサインアップしたイベントの eventid を含みます。(注: 特定のイベント ID は、どちらかの eventname() 列にある可能性があります。たとえば、イベント ID 66 は、あるユーザーの eventname1 に表示され、別のユーザーの eventname 2 に表示される可能性があります)

やりたいこと
すべてのイベントの詳細をテーブルに表示し、イベントごとに、そのイベントに登録されたユーザー数をリストする列 (# 出席者) を含めたいと思います。

私がこれまでに持っているもの

   SELECT COUNT( * ) 
    FROM  `users` 
    WHERE  `eventname1` = ( 
    SELECT  `id` 
    FROM  `events` 
    WHERE id =e.g.23 )

これを結合と組み合わせて使用​​しようとしましたが、どこにも行きません。どんな提案でも大歓迎です。

ありがとう。

4

2 に答える 2

2

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
于 2012-08-29T10:43:53.180 に答える
0

これを試して

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
于 2012-08-29T10:45:27.597 に答える