


내 답
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문
- 좀 더 깔끔해 보이긴 하네