나는 테스트를 저장하는 응용 프로그램을 만들고 있습니다. 데이터베이스 스키마는 내가 그 학생이 두 번째 테스트를 (, 검색 인)가있는 경우 등급이 두 번째 테스트의 하나 여야합니다 반환 된 점을 고려 각 학생의 성적을 얻기 위해 질의를 필요로성적을 얻는 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'
아래 단순화 (첫 번째가 아님).
은 그래서 예를 들어, 결과 세트 내가 SQL을 썼다student_1 teacher_1 10 'Y'
student_2 teacher_1 8 'N'
student_3 teacher_1 9 'N'
해야하지만, 제대로 동작하지 않습니다. 한 학생은 테이블에 하나 개 또는 두 개의 기록이 할 수있는 경우는 student_2을 얻고
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'
)
'second_test = 'Y''는 학생 1 만 가져올 것입니다 – Matt
테이블 구조와 필드를 알려주십시오. – Matt
질문에 주어졌습니다. 나는 당신이 이해하는 것을 도울 것이지만, 당신은 정확히 무엇이 더 필요합니까? – gbvisconti