| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
- delegate
 - 쿼리
 - 닫기버튼
 - 씨샵
 - 스프링부트
 - c#
 - 프로그래머스
 - level2
 - 코테
 - 일반화
 - level3
 - 자바
 - 운전면허
 - 백준
 - MySQL
 - Java
 - SQL
 - Spring Boot
 - springboot
 - level4
 - 보통2종
 - MVVM
 - programmers
 - 3일컷
 - 델리게이트
 - 1931번
 - WPF
 - JPA
 - 코딩테스트
 - Python
 
- Today
 
- Total
 
욱꾸미의 주꾸미 발
[코딩테스트] 프로그래머스 - 취소되지 않은 진료 예약 조회하기(MySQL, Level4) 본문
안녕하세요.
오늘은 글을 올리는 시간이 조금 늦었네요~
요즘은 찾아보지를 않으면 java관련 코딩테스트 문제를 풀지못해 올리지를 못하니 우울합니다.
이번문제는 꽤나 낑낑거리며 풀어 지하철 시간+ 셔틀버스안에서 까지 풀었습니다.
설마 총데이터가 하나만 떨렁 나올줄 몰랐었기에...
문제 만나보시죠~
https://school.programmers.co.kr/learn/courses/30/lessons/132204
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
다음은 제가 작성한 쿼리입니다.
-- 코드를 입력하세요
select patient_appointment.apnt_no,  patient_appointment.pt_name, patient_appointment.pt_no, patient_appointment.mcdp_cd, dr.dr_name, patient_appointment.APNT_YMD
from doctor as dr
join
(
SELECT ap.apnt_no as apnt_no, pa.pt_name as pt_name, pa.pt_no as pt_no, ap.mcdp_cd as mcdp_cd, ap.mddr_id as mddr_id, APNT_YMD
from appointment as ap
join patient as pa
on ap.pt_no=pa.pt_no
where APNT_YMD like '2022-04-13%'
and mcdp_cd='cs'
and APNT_CNCL_YN='N'
) as patient_appointment
on dr.dr_id=patient_appointment.mddr_id
order by patient_appointment.APNT_YMD
좀 너저분 합니다~
기존 문제와는 다르게 이번 문제는 세 개의 테이블을 이용해야했습니다.
그렇기에
① APPOINTMENT Table과 Patient Table을 Joint해 apnt_no, pt_name, pt_no, mcdp_cd, mddr_id, APNT_YMD를 Select했습니다. mddr_id는 추후 DOCTOR Table의 id와 Join시 사용할 예정입니다.
② 그리고 여기에서 바로 필요한 조건을 걸어 데이터를 한번 정리하겠습니다.
- 먼저 날짜 2022년 4월 13일 찾기위해 Like사용
- 취소여부를 찾기위해 APNT_CNCL_YN='N'
- 흉부외과를 찾기위해 mcdp_cp='cs'
와 같은 조건을 걸었습니다.
③ 해당 데이터를 이제 doctor Table과 join하겠습니다. 여기서 우리가 추가로 알아야될 정보는 바로 DOCTOR Table의 Name Data입니다.
④ Join 후 데이터를 select하고 문제에 맞게 정렬 하는 쿼리를 추가해주시면 되겠습니다.
아마 이것도 서브쿼리라고하나요..? 이런 개념이 들어가서 어려웠을수도 있다고 생각합니다.
더군다나 저는 자그마한 폰화면으로 보다보니 더욱 헷갈렸었네요.
오늘은 여기까지 하고 마무리하겠습니다.
감사합니다:D
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [코딩테스트] 프로그래머스 - 조건에 맞는 도서와 저자 리스트 출력하기(MySQL, Level2) (0) | 2022.12.22 | 
|---|---|
| [코딩테스트] 프로그래머스 - 카테고리 별 도서 판매량 집계하기(MySQL, Level3) (0) | 2022.12.21 | 
| [코딩테스트] 프로그래머스 - 서울에 위치한 식당 목록 출력하기(MySQL, Level4) (0) | 2022.12.14 | 
| [코딩테스트] 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기(MySQL, Level4) (0) | 2022.12.14 | 
| [코딩테스트] 프로그래머스 - 불량 사용자(Java, Level3) (1) | 2022.12.12 |