을 복용하는 학생의 이름을 찾고 내 테이블 컴퓨터 과학 과정과 수학 과정을 함께 듣는 학생들의 그러나 어떤 결과도 채워지지 않습니다.이 개 과정 여기
SELECT student.sid, student.sname
FROM student
INNER JOIN major ON major.sid = student.sid
AND major.dname LIKE '%Computer Sciences%' AND '%Mathematics%'
GROUP BY student.sname, major.dname
초 시도 "결과가 없습니다 채워/오류없이":
SELECT student.sid, student.sname, course.dname
FROM student, course
INNER JOIN major ON major.dname = course.dname
WHERE course.dname = '%Computer Sciences%'
AND course.dname = '%Mathematics%'
오류 메시지
세 번째 시도 : "알 수없는 열
내 첫 시도"결과가 없습니다 채워/오류없이 "
'student.dname'in 'where clause' ":SELECT student.sid, student.sname
FROM student
WHERE EXISTS (SELECT * FROM major WHERE major.dname=student.dname LIKE '%Computer Sciences%' AND '%Mathematics%')
누군가 올바른 방향으로 나를 가리킬 수 있습니까?
저는 주요 테이블이 붉은 청어라고 생각합니다. 단지 전공을 선택하지 않고학과 과정을 수강하는 학생들을 찾고 있습니다. – RobP
오, 아마 맞을 것입니다. 내 질문은 과정이 아닌 전공에서 효과가 있습니다. 그러나 동일한 교장이 적용됩니다. 코스 전공을 전환하고 적절한 조인을 제자리에 두십시오. –
두 개의 쿼리를 수행하고 IN 연산자를 사용하면 성능이 크게 향상됩니다. 올바른 인덱스가 있으면 더 많은 JOIN을 사용하는 것이 훨씬 빠릅니다 ... 내 대답을 고수 할 것입니다. – RobP