SQL로 시작하여 첫 번째 전체 - 이터레이터가 이미 여기에 있습니다. 달성 시험 점수> X를했다 모든 경우에, 나는 선택 성명을 발표하고 학생의 이름, 성 및 코스 이름을 나열하려면 어떻게SQL은 두 번째 테이블을 기준으로 세 번째 테이블을 기준으로 선택합니다.
student (student_id, first_name, last_name)
course (course_id, name)
exam (ref_to_student_id, ref_to_course_id, score)
:
나는 세 개의 테이블이?
이 내 최고의 샷 :
last_name
last_name
name
name
name
와 학생이 어떤 시험/코스에서 X 점 이상 정확하게 말하는 방법이 없습니다 :
SELECT last_name FROM student WHERE student_id IN
(SELECT ref_to_student_id FROM exam WHERE score > 50)
UNION ALL
SELECT name FROM course WHERE course_id IN
(SELECT ref_to_course_id FROM exam WHERE score > 50)
내가 얻을 수 있기 때문에 그것은, 결함입니다. 이런 내 마음에서
, 뭔가 :
SELECT first_name, last_name, name
FROM student, course
WHERE student_id, course_id
IN (SELECT ref_to_student_id, ref_to_course_id FROM exam WHERE score > 50)
이 같은 것을 생산하는 것은 :
John Doe Chemistry
Jane Dove English
...
하지만, 그것은 단지 구문 오류에 대한 알림을 생성합니다.
SELECT last_name, first_name, name, score
FROM student s
JOIN exam e ON s.student_id = e.ref_to_student_id
JOIN course c ON e.red_to_course_id = c.course_id
WHERE score > 50
은 매력이 있습니다. 고맙습니다! – svrmirac