https://school.programmers.co.kr/learn/courses/30/lessons/132204
코드설명
INNER JOIN(삼중조인) DATE_FORMAT 을 활용합니다.
삼중조인을 한뒤, APPOINTMENT 만이 DOCTOR와 PATIENT의 역할을 동시에 가지고 있기 때문에 이러한 특성을 이용해서 데이터를 가져옵니다.
코드
SELECT AP.APNT_NO, P.PT_NAME, P.PT_NO, AP.MCDP_CD, D.DR_NAME, AP.APNT_YMD
FROM PATIENT AS P
INNER JOIN APPOINTMENT AS AP
ON P.PT_NO = AP.PT_NO
INNER JOIN DOCTOR AS D
ON AP.MDDR_ID = D.DR_ID
WHERE DATE_FORMAT(AP.APNT_YMD, '%Y-%m-%d') = '2022-04-13' AND AP.APNT_CNCL_YN = 'N'
ORDER BY AP.APNT_YMD ASC
ORACLE
SELECT A.APNT_NO, P.PT_NAME, A.PT_NO, A.MCDP_CD, D.DR_NAME, A.APNT_YMD
FROM PATIENT P
INNER JOIN APPOINTMENT A
ON P.PT_NO = A.PT_NO
INNER JOIN DOCTOR D
ON A.MDDR_ID = D.DR_ID
WHERE A.APNT_CNCL_YMD IS NULL AND A.MCDP_CD = 'CS' AND TO_CHAR(A.APNT_YMD, 'YYYY-MM-DD') = '2022-04-13'
ORDER BY A.APNT_YMD ASC