2012-08-29 36 views
0

級別
我是一個初學者計數與會者MYSQL/PHP

我有兩個表:

事件中的所有事件的
詳細每個事件唯一的事件ID。

用戶
列出每個與會者的細節與eventname1包含他們簽署了事件的事件ID列和eventname2。 (注:特定的事件ID的形式可以是事件名稱()列如事件ID 66可能出現在eventname1一個用戶和事件名稱2再)

我想這樣做
我想響應一個包含我所有事件詳細信息的表格,並且每個事件包含一列(#Attendees)列出爲該事件註冊的用戶數量。

我至今

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

我一直特林連同一起使用這一點,但我沒有得到任何地方。任何建議將不勝感激。

謝謝。

+0

你能在你的問題中添加列的細節?問題目前不可讀。 – sundar

回答

2

創建3個表,並將它們存儲seperatly,你可以很容易地指望它

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 
+0

即使這個答案建議對(我假設)OP有一些修改,開始使用標準(比如@Rafee所建議的)而不是與一個困難的表結構進行鬥爭會更好。 –

+0

謝謝大家。我同意你Rafee的觀點,並會在下次嘗試以這種方式對錶格進行排序。 與此同時,這裏是對我有用: SELECT events。,count() FROM events left outer join users ON(newevents.id = users.eventname1)OR(events.id = users.eventname2) – user1632867

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