我的参加者表格如下:
event_id user_id
1 16
1 12
1 13
2 14
2 16
2 12
3 11
3 16
以及有关表格中事件的信息:
event_id eventcenter_id date_begin date_end
1 2 2016-10-31 18:00:00 2016-10-31 21:00:00
2 1 2016-11-20 18:00:00 2016-11-20 18:40:00
3 2 2016-11-20 15:00:00 2016-11-20 18:00:00
最后是一个看起来像这样的表:
eventcenter_id name
1 Fire Hall
2 Sunny Lake
我需要一个返回用户正在参与的所有事件的查询。结果应返回事件中心名称,date_begin和date_end,我可以在日历中使用这些对象。当我尝试从与会者表上加入event_id时,它会在event_id上给出错误而不是唯一值。我之后的结果应该是这样的:
user_id eventCenter_name date_begin date_end
16 sunny lake 2016-10-31 18:00:00 2016-10-31 21:00:00
16 fire hall 2016-11-20 18:00:00 2016-11-20 18:40:00
16 sunny lake 2016-11-20 15:00:00 2016-11-20 18:00:00
答案 0 :(得分:1)
试试这个(也许您必须将表eventcenter的名称更改为您使用的名称):
SELECT aa.user_id, cc.eventCenter_name, bb.date_begin, bb.date_end
FROM attendees AS aa
INNER JOIN events AS bb
ON aa.event_id = bb.event_id
INNER JOIN eventcenter AS cc
ON bb.eventcenter_id = cc.eventcenter_id
ORDER BY aa.user_id ASC;
如果您需要特定用户,请使用以下查询:
SELECT aa.user_id, cc.eventCenter_name, bb.date_begin, bb.date_end
FROM attendees AS aa
INNER JOIN events AS bb
ON aa.event_id = bb.event_id
INNER JOIN eventcenter AS cc
ON bb.eventcenter_id = cc.eventcenter_id
WHERE aa.user_id = 16;