我的第一个查询从 3 个表中提取学生详细信息。学生、学生地址和学生笔记。
我的查询必须列出学生的详细信息,包括 ID、姓名、地址、备注,并找到他们参加课程的最早日期。
我创建了一个聚合查询来执行此操作。
SELECT STU_Name, MIN(ENR_StartDate)
FROM Student
INNER JOIN Enrolment
ON Student.STU_Student_ID = Enrolment.ENR_Student_ID
GROUP BY STU_Name
这是我提取学生详细信息的主要查询。
SELECT STU_Name, ADD_Addr_Line_1, ADD_Addr_Line_2, ADD_Addr_Line_3, ADD_Postcode, NTE_Note, ENR_StartDate
FROM Student
INNER JOIN StudentAddress
ON Student.STU_Student_ID = StudentAddress.ADD_Student_ID
INNER JOIN StudentNote
ON Student.STU_Student_ID = StudentNote.NTE_Student_ID
INNER JOIN Enrolment
ON Student.STU_Student_ID = Enrolment.ENR_Student_ID
我想链接这些查询,以便结果集告诉我该行中每个学生的最早开始日期。
学生期望的输出
row0: student1id, student1name, student1address, student1note1, student1startdate
row1: student1id, student1name, student1address, student1note2, student1startdate
这将允许一个学生有多个笔记,但是对于一个学生来说,开始的开始总是被计算为相同的。
我在 sql fiddle 中构建了一个测试模式。
http://sqlfiddle.com/#!2/cecea/4
谢谢你的帮助。