SQL 문제

문제 58. 취소되지 않은 진료 예약 조회하기(난이도 7)(3중 JOIN)

kagan-draca 2024. 7. 26. 17:12

 

문제에서 3개의 테이블이 주어진다. 그럼 3중 JOIN을 사용해야 한다는 건데...

3중 JOIN 방법을 찾아보니,

 

FROM "테이블1" JOIN "테이블2" ON "테이블1.컬럼" = "테이블2.컬럼"

JOIN "테이블3" ON "테이블1.컬럼 또는 테이블2.컬럼" = "테이블3.컬럼" 

처럼 사용 가능했다.

 

이때, 컬럼으로 중복되는 걸 찾는 것도 일이었다...

 

제출한 코드 : 

 

SELECT B.APNT_NO, A.PT_NAME, B.PT_NO, B.MCDP_CD, C.DR_NAME, B.APNT_YMD
FROM PATIENT AS A INNER JOIN APPOINTMENT AS B
ON A.PT_NO = B.PT_NO INNER JOIN DOCTOR AS C
ON B.MDDR_ID = C.DR_ID
WHERE YEAR(B.APNT_YMD) = '2022' && MONTH(B.APNT_YMD) = '04' && DAY(B.APNT_YMD) = '13' &&
B.MCDP_CD = 'CS' && B.APNT_CNCL_YN = 'N'
ORDER BY B.APNT_YMD ASC