2013-02-07 115 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,其可以代替动态

相关问题