2013-02-07 45 views
0

我正在開發一個項目來幫助參加特定會議的與會者。我正在進行查詢以獲取會議中的事件以及指定用戶是否參加此活動。爲了跟蹤用戶是否參加一個事件,我們有一個連接表(Events_Users),所以我不知道如何完成我的任務。我需要能夠選擇事件的所有信息並返回,並附加一個額外的列「isAttending」(數據庫中不存在),指定該用戶是否參加該會議。MySQL查詢返回不在數據庫中的值

我想返回結果是這樣的:

| event.id | isAttending | 
|  1 |  1  | 
|  2 |  0  | 
|  3 |  0  | 

這可能嗎? (userId將被傳入,以便我可以檢查以確定'isAttending'是true還是false)。作爲一個方面說明,我們已經嘗試了兩個單獨的調用(getAllEvents和isUserAttending);我們已經嘗試了兩個不同的調用(getAllEvents和isUserAttending)。然而,因爲這些調用是異步的,所以我們無法獲得我們想要的信息(我不知道細節)。

謝謝!

+0

這是可以實現使用'LEFT JOIN'。你需要向我們展示一個表格結構。 – Kermit

回答

0

假設你已經在這些表

Events : id , other columns 
Event_Users : event_id , user_id 
Users : id , username 

這裏是whichi會給你的想法查詢。如果null用IFNULL將值設置爲0 else 1。

SELECT 
    e.id, 
    IFNULL(u.username,0,1) as isAttending 
from `Events` as e 
    LEFT JOIN Events_Users as eu ON eu.events_id = e.id 
    LEFT JOIN users as u ON u.id = eu.user_id 
where u.id = 1 

其中1是特定用戶ID,其可以代替動態

相關問題