2012-10-18 3 views
-1

다른 테이블에있는 모든 고유 값입니다있는 키 등 :
찾아 해당 값이 I는 다음과 같이 3 개 테이블이

STUDENT(*snum: integer, sname: string, deptid: integer, slevel: string, age: integer)

CLASS(*cname: string, meets_at: date, room: string, fid: integer)

ENROLLED(*snum: integer, *cname: string)

나는 모든 방에 수업이있는 학생의 학생 이름 (sname)을 찾으려고합니다. (roo m in CLASS). 어떻게해야합니까? 여기

답변

1
select sname from STUDENT 
join ENROLLED on STUDENT.snum = ENROLLED.snum 
join CLASS on ENROLLED.cname = CLASS.cname 
group by sname 
having count(distinct room) = (select count(distinct room) from CLASS) 

SQLfiddle는 : http://sqlfiddle.com/#!2/71cba/1/0

당신은 아마 방 이름이 일관성없이 입력되는 문제를 방지하기 위해, 별도의 테이블로 객실을 가져야한다.

관련 문제