안녕하세요 쿼리를 짜던 중 아무리 생각해도 모르겠는게 있어 질문남깁니다
간단히 설명 드리면
이렇게 학생 테이블
학생이름 | 주소 | 학년 |
홍길동 | 서울 | 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 조건을 쓰는게 나을 거라 생각하여 혹시 방법이 있을까 하여 질문드립니다.