SQL连接表两次以提取相关数据

时间:2016-05-06 13:36:05

标签: sql

无法弄清楚这个查询。我有4个表人,学生,关系和房子。人员表包含学生和家长,我有一个名为关系的联接表,它将学生与父母联系起来。

我正在尝试获取我为学生提供的IDS所有父母的清单。 pn别名应代表Pupil详细信息,rp应代表父详细信息。我有以下代码,但我不确定你可以链接到一个表两次,就像我使用PERSON所以我应该使用子查询还是我错过了一些非常明显的东西?

SELECT pn.pk_PersonID, 
       pn.Title, 
       pn.Forename, 
       pn.Surname, 
       rp.Title, 
       rp.Forename, 
       rp.Surname, 
       pn.PreferredForename, 
       pn.DoB, 
       pn.Gender, 
       h.House, 
       p.Form, 
       p.BoardingStatus, 
       p.Tutor, 
       h.Housemaster 
  FROM PUPIL AS p 
         LEFT JOIN PERSON AS pn ON p.pk_PupilID = pn.pk_PersonID  
         LEFT JOIN HOUSE AS h ON p.fk_DepartmentID = h.fk_DepartmentID 
         LEFT JOIN RELATION AS r ON p.pk_PupilID = r.fk_PersonID 
         LEFT JOIN PERSON AS rp ON r.fk_RelatedPersonID = rp.pk_PersonID 
 WHERE p.pk_PupilID IN('" & pks & "') AND ORDER BY pn.Forename ASC  

0 个答案:

没有答案