1

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

数据库

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

|| 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;

这对于获取第一人称的详细信息很有效。在过去的几个小时里,我一直在尝试创建一个表格来显示我需要的列,但是我无法像上面描述的那样工作——坦率地说,我不确定我要做什么!有人可以为我提供正确方向的指导!

4

1 回答 1

3

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

我认为 table 上的列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

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-04-05T13:26:33.627 回答