2015-10-04 45 views
0

我有一個與會者表看起來是這樣的:在一個表中MySQL的非唯一值JOIN與IF條件

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 

回答

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

第二個答案讓我在那裏,謝謝:) –

+1

不錯!不要忘記綠色的勾號來接受答案。 –