코딩 테스트 연습/[프로그래머스][리트코드] MySQL

[LV.4] String, Date > 취소되지 않은 진료 예약 조회하기 ⭐

duswjd_data 2025. 6. 25. 09:00

문제

https://school.programmers.co.kr/learn/courses/30/lessons/132204

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제 설명

  • PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성
  • 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성
  • 결과는 진료예약일시를 기준으로 오름차순 정렬

정답 코드

SELECT 
  A.APNT_NO, 
  P.PT_NAME, 
  P.PT_NO, 
  A.MCDP_CD, 
  D.DR_NAME, 
  A.APNT_YMD
FROM APPOINTMENT A
JOIN PATIENT P ON A.PT_NO = P.PT_NO
JOIN DOCTOR D ON A.MDDR_ID = D.DR_ID
WHERE 
  A.MCDP_CD = 'CS'
  AND A.APNT_CNCL_YN = 'N'
  AND DATE(A.APNT_YMD) = '2022-04-13'
ORDER BY A.APNT_YMD

코드 설명

FROM APPOINTMENT A
JOIN PATIENT P ON A.PT_NO = P.PT_NO
JOIN DOCTOR D ON A.MDDR_ID = D.DR_ID
  • 세 테이블을 한 번에 JOIN 하는 방식
    • APPOINTMENT을 중심으로 환자와 의사 테이블을 연결