2016-03-04 51 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