A테이블
학생번호 학생이름 학생정보
1 동길 기타
2 철수 기타
3 영희 기타
B테이블
학생번호 수강과목 학점
1 수학 90
1 영어 90
2 수학 80
2 과학 20
3 수학 30
여기서 수강과목중 영어를 듣지 않고 수학을 듣는 학생목록을 구해야 하는데
만약 쿼리돌린다면 철수, 영희가 나와야 해요
어떤식으로 해야 할까요??
지금은
select 이름 from A where a.학생번호 in(select b.학생번호 from A where 학생번호 in(
(select count(b.학생번호) from B where a.학생번호 =b.학생번호 and 과목 <> 수학)=0 ) and
(select count(b.학생번호)from B where a.학생번호 = b.학생번호 and 과목 = 수학)=0)
)
이런느낌으로 뽑아 냈는데 다른 방식으로 간단하고 효율좋은 방법이 없을까요??
|