显示2个外键的值

时间:2013-04-05 13:23:39

标签: mysql sql database foreign-keys sql-view

我正在创建一个MySQL数据库,它具有以下形式的关系:

database

我想要实现的是创建一个视图,一次显示两对夫妇的详细信息,例如列名称将是:

|| P1_First_Name || P1_LastName || P1_Gender || P2_FirstName || P2_LastName || P2_Gender ||

但是我不知道该怎么做。到目前为止,我有一些基本的东西

CREATE VIEW CoupleDetails AS
SELECT People.`First Name`, People.`Last Name`, People.`Gender`
FROM Couples
LEFT JOIN People ON People.NI_Number = Couples.ni_person1;

这对于获取第一个人的详细信息很有用。我花了最后几个小时试图创建一个显示我需要的列的表,但是我不能像上面描述的那样得到一些工作 - 坦率地说,我不确定我的目的是什么!请有人在正确的方向上给我指导!

1 个答案:

答案 0 :(得分:3)

您需要将表People与表Couples连接两次,因为有两列表Couples依赖于表People

我认为表Couples上的列是必需的(或不可为空),因为当只有一个人:)

时,你不能打电话给夫妻
CREATE VIEW CoupleDetails 
AS
SELECT  b.FirstName P1_FirstName,
        b.LastName P1_LastName,
        b.Gender = P1_Gender,
        c.FirstName P2_FirstName,
        c.LastName P2_LastName,
        c.Gender = P2_Gender
FROM    Couples a
        INNER JOIN People b
            ON a.ni_person1 = b.NI_Number
        INNER JOIN People c
            ON a.ni_person2 = c.NI_Number

要进一步了解联接,请访问以下链接: