취소되지 않은 진료 예약 조회하기

Giho Kim·2023년 9월 27일

코테 연습 - sql

목록 보기
4/12

내 답

SELECT B.APNT_NO, B.PT_NAME, B.PT_NO, B.MCDP_CD, D.DR_NAME, B.APNT_YMD
FROM DOCTOR D JOIN (SELECT P.PT_NO, P.PT_NAME, A.APNT_NO, A.MCDP_CD, A.APNT_YMD, A.MDDR_ID
                        FROM PATIENT P JOIN (SELECT APNT_NO, MCDP_CD, APNT_YMD, PT_NO, MDDR_ID
                        FROM APPOINTMENT
                        WHERE MCDP_CD = 'CS' AND APNT_CNCL_YN = "N" and YEAR(APNT_YMD) = 2022 AND MONTH(APNT_YMD) = 4 AND Day(APNT_YMD) = 13) A ON P.PT_NO = A.PT_NO) B ON D.DR_ID = B.MDDR_ID
ORDER BY B.APNT_YMD ASC
  • 서브 쿼리 써서 풀긴했는데 좀 지저분해보이고 runtime오래걸릴꺼같음

다른 답

SELECT A.APNT_NO,B.PT_NAME,A.PT_NO,A.MCDP_CD,C.DR_NAME,A.APNT_YMD
FROM APPOINTMENT AS A INNER JOIN PATIENT AS B ON A.PT_NO = B.PT_NO
INNER JOIN DOCTOR AS C ON A.MDDR_ID = C.DR_ID
WHERE A.APNT_YMD LIKE '2022-04-13%' AND A.MCDP_CD = 'CS' AND A.APNT_CNCL_YN = 'N'
ORDER BY A.APNT_YMD ASC
  • inner join을 2번 연속해서 써서 3개 테이블 합친 다음에 한꺼번에 where문
  • 좀 더 깔끔해 보이긴 하네
profile
취준돌이 개발자 김기호

0개의 댓글