所以我有三张桌子;用户,事件和user_events。
用户表存储有关用户的所有信息,事件表将存储所有用户可以查看的所有事件以及用户ID的外键行,以便应用程序可以知道谁创建了该特定事件。最后一个表user_events存储event_id和user_id。我需要将这三个表连接在一起,以便我可以在特定用户参与该特定事件时获得结果。
到目前为止,我已经尝试过这个查询而没有任何运气:
SELECT events.*, user_events.user_id AS attending FROM events
LEFT JOIN users ON users.user_id = events.creatoruserid
LEFT JOIN user_events ON user_events.user_id = users.user_id;
这个概念是我需要在我的应用程序中进行检查,并检查用户是否参加该特定事件,如果是,他/她可以删除出勤,反之亦然。
答案 0 :(得分:1)
当您尝试抓住与会者时,看起来事件创建者正在混入查询中。您似乎也不需要加入users表,因为没有使用任何字段。
SELECT events.*, user_events.user_id AS attending FROM events
LEFT JOIN user_events ON user_events.event_id = events.event_id;
编辑: 如果您只想要单个用户的事件
SELECT events.*, user_events.user_id AS attending FROM events
LEFT JOIN user_events ON user_events.event_id = events.event_id
WHERE user_events.user_id = ?1;
AND events.event_id = ?2;
其中?1
是您要检查的用户的ID,?2
是您希望用户参加的事件的ID