显示所有学生姓名的查询,包括他们的性别,父亲姓名和母亲姓名(使用联接)
答案 0 :(得分:1)
欢迎来到StackOverflow,Harry!
我写这个的方式如下:
SELECT s.SName StudentName,
s.Gender Gender,
f.GName FatherName,
m.GName MotherName
FROM Students s
INNER JOIN Guardian f ON f.GuardianId = s.FatherId
INNER JOIN Guardian m ON m.GuardianId = s.MotherId
内部联接条款将仅保留两名监护人都填写的学生。如果您希望将监护人作为可选字段,则可以将“内部联接”替换为“左联”。在这种情况下,即使没有与之相关的监护人,也会显示“左”表的所有记录(例如学生,因为这将留在连接中)。
有关内连接子句和其他类型连接的更多信息,请访问w3schools页面:https://www.w3schools.com/sql/sql_join_inner.asp。
答案 1 :(得分:0)
这是可以为您提供所需内容的SQL。
SELECT
Student.SName AS StudentName,
Student.Gender,
Father.GName AS FatherName,
Mother.GName AS MotherName
FROM Student
LEFT JOIN Guardian AS Father ON Father.GuardianID = Student.FatherId
LEFT JOIN Guardian AS Mother ON Mother.GuardianID = Student.MotherId