2 引用 MySQL 中相同主键的外键

本教程将介绍2 引用 MySQL 中相同主键的外键的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

2 引用 MySQL 中相同主键的外键 教程 第1张

问题描述

像这样:

表学生:

sID |名字

1 -----苏珊

2 -----摩根

3 -----伊恩

4 -----詹姆斯

主键 = sID

另一张桌子是这样的:

桌友

朋友ID |人A |人B

1------------1------------3

2------------1------------2

3-------------2------------3

4-------------3------------4

其中主键是:friendsID、personA、personB

外键 = personA, personB 都引用学生表中的sID

我想要一种查询朋友表的方法,通过 sID 将 personA 和 personB 列替换为名称.我尝试了自然连接,但它只有在有一个外键时才有效.

即我正在寻找这样的东西:

朋友ID |人A |人B

1------------苏珊------------伊恩

2------------苏珊------------摩根

3-------------摩根------------伊恩

4-------------伊恩------------詹姆斯

如果我只有 personB 作为列而没有 personB,自然连接将起作用.出于某种原因,当我这样做时,自然连接是巨大的:select*from friends NATURAL JOIN student;

请帮忙.谢谢

推荐答案

您需要使用两个连接来完成此操作.

例如:

select f.friendsID, 
  s1.name as personA_name, 
  s2.name as personB_name
from friends f
  inner join student s1 on s1.sID = f.personA
  inner join student s2 on s2.sID = f.personB

好了关于2 引用 MySQL 中相同主键的外键的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。