在同一主键MYSQL上连接三个表

时间:2016-03-04 22:10:01

标签: mysql sql

我正在尝试在第一个表主键上连接三个表,其中两个表都拥有外键。

实施例

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

每个联接都是单独的,但是当我尝试将它们组合起来时。它给了我空的结果集。真的很困惑这里发生了什么。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

尝试左外连接。您将能够更好地分析数据。