有人可以解释为什么除了我的代码返回的前四个记录之外我都得到Null值吗? 我的教师表只有4条记录,所以我想我的连接语法不正确。 对不起,我还没有完全理解加入。
USE Assignment
GO
CREATE VIEW PupilsAges AS
SELECT Pupil_ID,PupilDetails.FName,
PupilDetails.LName, PupilDetails.DOB,
DATEDIFF(year, GETDATE(),PupilDetails.DOB) AS "PupilAge",
Instrument,
(Teachers.FName+' '+Teachers.LName) AS Teacher
FROM Teachers JOIN PupilDetails
ON Teachers.ID = PupilDetails.Pupil_ID
答案 0 :(得分:2)
您加入Teachers.ID = PupilDetails.Pupil_ID
这看起来是个问题,你没有列出表格的架构,但尝试类似的东西:
USE Assignment
GO
CREATE VIEW PupilsAges AS
SELECT Pupil_ID,PupilDetails.FName,
PupilDetails.LName, PupilDetails.DOB,
DATEDIFF(year, GETDATE(),PupilDetails.DOB) AS "PupilAge",
Instrument,
(Teachers.FName+' '+Teachers.LName) AS Teacher
FROM Teachers JOIN PupilDetails
ON Teachers.ID = PupilDetails.Teacher_ID
答案 1 :(得分:0)
您想要加入一个与两个表之间的数据相关的字段。在她的茶中,id字段应该识别一位老师。在pupilDetails中,pupil_id识别出一个瞳孔。您想加入teacher_id字段(如果存在)。
根据您当前的查询,您只有4名教师,所以一旦您通过了前4名学生,它就不知道有谁加入5+以上的学生。当你加入适当的领域时,老师应该重复。