我的第一個查詢從3個表中抽出學生的詳細信息。學生,學生地址和學生筆記。將2個查詢加入到一個查詢中,作爲子查詢
我的查詢必須列出學生的詳細信息,包括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小提琴中構建了一個測試模式。
http://sqlfiddle.com/#!2/cecea/4
感謝您的幫助。
你會得到一個笛卡兒的產品,在同一天開始的4門課程中學生(相當普遍!) – RichardTheKiwi
這一直是你需要牢記的一個問題。這個解決方案只是爲了展示這個概念。如果您不小心,任何這些表格都會產生奇怪的結果。有一種簡單的方法可以在註冊表中打破關係,只需對ON子句進行簡單的更改即可。 –