관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

집합 연산자와 계층형 질의 8 - 미션 문제 풀기 및 단원 마무리하기 본문

알고리즘 및 자료 관리/SQL

집합 연산자와 계층형 질의 8 - 미션 문제 풀기 및 단원 마무리하기

huenuri 2024. 10. 22. 20:59

이제 미션 문제를 풀며 이 단원을 정리해 볼 것이다.


 

 

 

 

미션 1 - 살 수 있는 물건들

 


 

 

 

1. 두 테이블의 데이터 조회하기

 

 

구매할 수 있는 상품을 product_stock이 0을 초과해야 한다. 이제 여기서 구매할 수 있는 물건을 찾아볼 것이다.


 

 

 

 

2. 구매할 수 있는 모든 상품이름의 목록 조회하기

 


 

 

 

3. 공통으로 구매할 수 있는 모든 상품이름 목록 조회하기

 

 

 

문제를 잘 맞혔다.


 

 

 

 

미션 2 - 개근상 받을 사람

 


 

 

 

1. 학생 정보와 지각 이력 테이블 조회하기

 

 

여기서 지각 이력이 없는 학생은 10001, 10002, 10004, 10007이 될 것이다.


 

 

 

2. 지각 이력이 없는 학생의 학생번호 조회하기

 

 

 

이 문제 역시 잘 풀었다.


 

 

 

 

 

미션 3 - 멘토와 멘티


 

 

 

1. MEMBER 테이블 조회하기

 

 

멘티와 멘토가 잘 나타나있다. 이를 계층적으로 확인하려고 하니 쿼리를 작성해 볼 것이다.


 

 

 

2. 계층적 질의 쿼리 작성하기

 

 

 

문제가 왜 틀렸을까? 가장 상위 멘토를 선택하기 위해 WHERE 절에서 mento_id를 특정할 필요가 있다. 일반적으로 멘토가 없는 경우(즉, 최상위 멘토)를 선택해야 하므로, mento_id NULL이거나 특정 값과 같아야 함을 고려해야 한다.


 

 

 

3. 코드 다시 수정하기

 

 

하지만 멘토와 멘티의 관계가 잘 나타나지 않고 있다. 즉 멘티가 어떤 멘토를 갖고 있는지 나타내도록 해야 한다.


 

 

 

4. 코드 한번 더 수정하기

 

 

 

이제 문제를 드디어 맞혔다.


 

 

 

 

1장을 닫으며

 

 

 

 

 

 

 

 


 

 

 

학습을 마치고

오늘 새벽에 3시에 일어나 맑은 정신으로 공부를 하니 정말 좋았다. 요즘 몸이 많이 힘들어서 어제 잠을 푹 자고 새벽에 일찍 일어나니 정말 기쁘다. 문제도 모두 100점을 맞았고 어제는 잘 이해하지 못했던 계층형 질의를 이제 어느 정도 잘 이해했다. 문제를 풀면서 감이 생기는 것 같다.