Mysql SQL,基于外键选择多个值,返回值

Mysql SQL,基于外键选择多个值,返回值,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,如何根据团队表中的两个外键选择查询、飞行员和副驾驶中的每个团队成员名称 表:玩家 +----------------+-----------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------------------+-----+------

如何根据团队表中的两个外键选择查询、飞行员和副驾驶中的每个团队成员名称

表:玩家

+----------------+-----------------+------+-----+---------+----------------+
| Field          | Type            | Null | Key | Default | Extra          |
+----------------+------------------------+-----+---------+----------------+
| id             | int(10) unsigned| NO   | PRI | NULL    | auto_increment | 
| name           | varchar(60)     | NO   |     | NULL    |                | 
| isPilot        | TINYINT(1)      | NO   |     | NULL    |                | 
| age            | int(4)          | NO   |     | NULL    |                | 
+----------------+-----------------+------+-----+---------+----------------+
表:团队

+----------------+-----------------+------+-----+---------+----------------+
| Field          | Type            | Null | Key | Default | Extra          |
+----------------+-----------------+------+-----+---------+----------------+
| id             | int(10) unsigned| NO   | PRI | NULL    | auto_increment | 
| pilot_id       | int(10) unsigned| NO   | FK  | NULL    |                | 
| copilot_id     | int(10) unsigned| NO   | FK  | NULL    |                | 
+----------------+-----------------+------+-----+---------+----------------+
这是一个好的数据库设置吗

可能是的转载,但不能应用于我的

MCVE: 结果应该是

+----------------+-----------------+
| Pilot          | Co-Pilot        | 
+----------------+-----------------+
| player4Name    | player3Name     | 
| player2Name    | player1Name     |
+----------------+-----------------+

似乎需要两个简单的联接:

SELECT
    p.name AS pilot,
    cp.name AS copilot
FROM
    team AS t
    INNER JOIN player AS p on p.id = t.pilot_id
    INNER JOIN player AS cp on cp.id = t.copilot_id

似乎需要两个简单的联接:

SELECT
    p.name AS pilot,
    cp.name AS copilot
FROM
    team AS t
    INNER JOIN player AS p on p.id = t.pilot_id
    INNER JOIN player AS cp on cp.id = t.copilot_id
试试这个:

select p1.name, p2.name from player p1
join team t1 on p1.id = t1.pilot_id
join player p2 on p2.id = t1.copilot_id;
试试这个:

select p1.name, p2.name from player p1
join team t1 on p1.id = t1.pilot_id
join player p2 on p2.id = t1.copilot_id;

请参阅使用正确示例更新。请参阅使用正确示例更新。如果“内部连接飞行员”替换为“内部连接球员”,则其工作正常如果“内部连接飞行员”替换为“内部连接球员”,则其工作正常