코딩테스트

[프로그래머스] [SQL] 취소되지 않은 진료 예약 조회하기

히그다스 2023. 12. 13. 16:02

 

 

바로 못풀고 방치해놨다가 오늘 마무리!

 

 

 

 

분명 전 포스팅에서는 테이블을 딱히 줄여부르지 않을 거라고 했지만

세개쯤 되니 복잡해서 그냥 줄였다 ㅋㅋㅋㅋ

 

TABLE 3개 조인하는건 처음이고

전에 코테에서 나왔을 때도 못풀었었는데

이번에 좀 찾아보면서 어려운게 아니라는 걸 알았다

 

다만 3개 join하는 거에서 (inner) join 이 자주 나와서 개념이 헷갈려서 다시 찾아봄

참고 블로그(하단에 기재)에서 가져왔다

 

내가 자주 쓰는 JOIN = INNER JOIN

 

 

 

 

JOIN 헷갈린 거랑 별개로 다 잘 작성했는데

테이블 내용이 안나와서 하다가 잠깐 접었다

 

왜 안나오는지 예시 테이블 뜯어보니까

APPOINTMENT 테이블에 APNT_YMD가 타임스탬프였음!!!!!

 

WHERE A.APNT_YMD = '2022-04-13' < 이렇게 해놨으니 검색 결과가 나올리가!

 

 

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.APNT_YMD LIKE '2022-04-13%' and A.MCDP_CD = 'CS' and A.APNT_CNCL_YMD is null
ORDER BY A.APNT_YMD ASC;

 

 

 

다시 잘 보고 해결하긴 했지만

당연히 이렇겠지 하면서 대충 넘기는 부분에서 실수가 잦아서

제대로 봐야지... 라고 생각 1000번째 하는 중

 

 


출처: 프로그래머스

참고: https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-JOIN-%EC%A1%B0%EC%9D%B8-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EA%B8%B0%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC