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;
请参阅使用正确示例更新。请参阅使用正确示例更新。如果“内部连接飞行员”替换为“内部连接球员”,则其工作正常如果“内部连接飞行员”替换为“内部连接球员”,则其工作正常