2016-03-04 80 views
0

我試圖在第一個表上連接三個表主鍵,其他兩個表都擁有一個外鍵。在同一個主鍵上連接三個表MYSQL

SELECT * 
FROM team_member 
INNER JOIN bench_member 
ON team_member.team_member_id=bench_member.team_member_id 
INNER JOIN player 
ON team_member.team_member_id=player.team_member_id 

每個單獨加入的作品,但是當我試圖把它們混合起來。它給了我空的結果集。真的很困惑,在這裏發生了什麼。

+0

您能否向我們提供您正在獲得的輸出與預期輸出? –

+0

有沒有可能在任何表中team_member_id都是NULL? –

+3

也許是因爲一個隊員是板凳隊員還是球員,但不是兩個?你確定要內部加入嗎? – maraca

回答

1

假設每個team_member都是一個bench_member或一個球員而不是兩個,那麼你可能會想要類似這樣的東西。 SQLFiddle

select t.*, 
    case when b.team_member_id is not null then 'Bench' 
    when p.team_member_id is not null then 'Player' 
end 
from team_member t 
left join bench_member b on t.team_member_id = b.team_member_id 
left join player p on t.team_member_id = p.team_member_id