我正在創建一個應用程序來存儲測試。數據庫架構簡化下面SQL來獲得成績
id_student id_teacher grade second_test
student_1 teacher_1 10 'Y'
student_1 teacher_1 5 'N'
student_2 teacher_1 8 'N'
student_3 teacher_1 9 'N'
我需要一個查詢來獲取每個學生考慮,如果該學生有第二次測試(這是一個檢索)等級返回必須在第二個測試的一個檔次(而不是第一個)。
因此,對於這個例子中,結果集應
student_1 teacher_1 10 'Y'
student_2 teacher_1 8 'N'
student_3 teacher_1 9 'N'
我寫了一個SQL語句,但它不工作。因爲它不會得到student_2和student_3
SELECT
m.id_student,
m.grade
FROM
mytable m
WHERE
second_test = 'Y'
OR EXISTS (
SELECT 1
FROM
mytable
WHERE
id_student = m.id_student
AND id_teacher <> m.id_teacher
AND second_test = 'Y'
)
'where second_test ='Y''只會帶回學生1 – Matt 2014-11-06 10:54:18
您可以給我們您的表格結構和領域請 – Matt 2014-11-06 10:57:38
它在問題中給出。我幫你理解,但你究竟需要更多什麼? – gbvisconti 2014-11-06 10:59:00