我对使用连接的SQL查询有疑问

时间:2017-06-29 19:29:12

标签: mysql

显示所有学生姓名的查询,包括他们的性别,父亲姓名和母亲姓名(使用联接)

enter image description here

2 个答案:

答案 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