【问题标题】:2 Foreign Keys referencing the same Primary Key in MySQL2 引用 MySQL 中相同主键的外键
【发布时间】:2014-12-24 10:49:11
【问题描述】:

像这样:

表学生:

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;

请帮忙。谢谢

【问题讨论】:

    标签: mysql database primary-key mysql-workbench foreign-key-relationship


    【解决方案1】:

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

    例如:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-12-13
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2011-07-11
      • 2015-06-17
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      相关资源
      最近更新 更多