서브쿼리에서의 IN 조건의 조건값 출력 0 3 1,951

by 구미구미 [Oracle 기초] SQL ORACLE [2021.09.29 14:43:58]


안녕하세요 쿼리를 짜던 중 아무리 생각해도 모르겠는게 있어 질문남깁니다

간단히 설명 드리면

이렇게 학생 테이블

학생이름 주소 학년
홍길동 서울 3
김철수 경기 2

과목 테이블

시험번호 과목이름 학생이름 성적
00002 수학 홍길동 A
00003 국어 홍길동 C

시험테이블

시험명 고유번호 날짜
9월 모의고사 00002 20210901
수능 00003 20211117

이런식으로 있으면

아래처럼 서브쿼리 내의 IN 조건을 써서 (이렇게 한 이유는 원래의 쿼리는 저 서브쿼리 내의 여러테이블을 조인하는 조건이 있습니다 ㅠㅠ)

 SELECT *
  FROM 학생
 WHERE 학생.학생이름 IN ( SELECT 학생.학생이름 FROM 과목,시험 WHERE 과목.학생이름 = 학생.학생이름 
                                                        AND 과목.시험번호 = 시험.고유번호
                                                        AND 과목.과목이름 IN ('수학','국어' ) ;

아래의 표처럼 결과를 내고 싶습니다. 

학생이름 과목이름 성적 시험이름
홍길동 수학 A 9월모의고사
홍길동 국어 C 수능

제가 데이터를 간단히 설명드려서 지금은 간단히 그냥 조인하여 사용하면 될것같지만

제가 위에 쓴대로 서브쿼리내의 여러테이블을 조인하여야 해서 그 안의 또  in 조건을 쓰는게 나을 거라 생각하여 혹시 방법이 있을까 하여 질문드립니다.

 

 

by 마농 [2021.09.29 15:40:46]
SELECT b.학생이름
     , b.과목이름
     , b.성적
     , c.시험명
  FROM 과목 b
     , 시험테이블 c
 WHERE b.시험번호 = c.고유번호
   AND b.과목이름 IN ('수학', '국어')
;

 


by 구미구미 [2021.09.29 16:53:27]

감사합니다 더 봐야겠어요ㅜㅜ 조건이 더 복잡해서..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입