MySQL外部连接三个表

MySQL外部连接三个表,mysql,join,multiple-tables,Mysql,Join,Multiple Tables,我很难在三张桌子上进行连接。我有这些桌子: table teams: id_team | team_name --------+----------- 1 | Alpha 2 | Beta 3 | Charlie --------+---------- table persons id_person | name ----------+------- 1 | Homer 2 | Ned 3 | Mo

我很难在三张桌子上进行连接。我有这些桌子:

table teams:

id_team | team_name
--------+-----------
      1 | Alpha
      2 | Beta 
      3 | Charlie
--------+----------


table persons

id_person | name 
----------+------- 
        1 | Homer
        2 | Ned
        3 | Moe
----------+-------- 


table teams_has_persons

id_team | id_person | is_leader
--------+-----------+-----------
      1 |         1 |       0
      1 |         2 |       1 
      2 |         3 |       0
--------+-----------+-----------
一个团队可以包含人员,也可以不包含人员。 一个团队可能有也可能没有领导者,尽管它有人。 一个团队只能有一个领导者

我想列出所有团队及其领导人。 如果团队没有领导者,则应显示空值(或任何其他内容),而不是领导者的姓名。 如果一个团队不在表中,那么团队成员应为 显示为没有领导的团队

期望输出:

id_team | team_name | leader
--------+-----------+-----------
      1 | alpha     |  Ned
      2 | beta      |  <null>
      3 | charlie   |  <null>
--------+-----------+----------- 
显示团队及其关联人员的列表,但不是我想要的



谢谢大家抽出时间

我无法评论。。。 你需要这样的东西吗?

SELECT 
    a.id_team,
    a.team_name, 
    b.id_person, 
    b.is_leader, 
    c.name 

FROM 
    teams as a
    LEFT OUTER JOIN (teams_has_persons as b INNER JOIN persons as c ON b.id_person = c.id_person ) ON (a.id_team = b.id_team)
SELECT 
    a.id_team,
    a.team_name, 
    b.id_person, 
    b.is_leader, 
    c.name 

FROM 
    teams as a

    LEFT OUTER JOIN (teams_has_persons as b 
                     INNER JOIN persons as c ON b.id_person = c.id_person ) 
                     ON (a.id_team = b.id_team AND b.is_leader = 1)