我正在创建一个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;
这对于获取第一个人的详细信息很有用。我花了最后几个小时试图创建一个显示我需要的列的表,但是我不能像上面描述的那样得到一些工作 - 坦率地说,我不确定我的目的是什么!请有人在正确的方向上给我指导!
答案 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
要进一步了解联接,请访问以下链接: