목련이 피었다!
sql 에서의 join함수. 여기서 공통컬럼으로 묶어줄 때 공통컬럼의 중요성에 대해 알게 되었다. 나는 지금까지 join을 생각할 때 그냥 공통컬럼만 있으면 된다. 그거 하나 찾아서 join하기. 특히 join을 생각할 때는 join의 방식만 고민을 했다. inner로 할 지, left로 할지에 대해서만.
근데 오늘 코드카타를 풀면서 알게된 것은 join시 공통컬럼을 어느컬럼으로 묶어줄 것인지가 중요한 것을 깨달았다.
왜냐하면 공통컬럼을 정확히 매치되는 값으로 뽑아주지 않을 때는 중복되는 컬럼이 발생할 수 있어서 정확히 매치되는 값을 뽑아줘야 한다는 것이다.
예를 들어서 오늘 코드카타에서 세개의 테이블을 드디어 묶어주는 문제를 만나게 되었다.
암튼 그건 뒤에서 말하기로 하고,
appointment 테이블이랑 doctor테이블에서 공통컬럼이 내 눈에 들어온 것이 진료과 코드(mcdp_cd)였다. 그래서 그냥 그걸로 묶어줬는데, 자꾸 틀렸다고 해서 또 모르겠어서 다른 사람들이 공유한 정답코드를 보았다. 내 쿼리랑 비교해보니 다른 점이 '공통컬럼'이었다.
진료코드는 똑같은 환자가 똑같지만 의사가 여러명이 있을 수 있기 때문에 중복값이라는 에러가 날 수 있다고 한다. 그래서 정확하게 일치하는 컬럼인 의사아이디(doctor테이블의 dr_id와 appotintment테이블의 MDDR_ID(의사아이디) 를 공통컬럼으로 해줘야 하는 것이다.)
오늘 처음 알았다. 암튼 그렇다고 한다. 그래서 join을 해줄 때 주의해야 할 점이
✅ "이 컬럼이 서로 정확히 연결되는 컬럼인가?"
✅ "중복이 발생할 가능성이 있나?"
를 생각해보는것!
그리고 세 테이블이상을 join할 때는 작성방법이 생각보다 어렵지 않았다. 그냥 join으로 묶어주고 뒤에 on을 그냥 공통컬럼으로 계속 묶어주면 된다. 저번에 qcc 할 때 무려 4테이블을 묶어줘야 해서 당황했던 기억이 난다.

이런식으로 계속 조인해주면 된다. 만약에 다른 테이블 하나가 더 있었다면 똑같이 inner join하고 조인하고자 하는 공통컬럼있는 테이블의 공통컬럼 on으로 작성해주면 끝. 생각보다 어렵지 않았다.

이렇게 정리하면 더 보기 수월할 것 같다.
파이선에서 몫을 구하는 식 // 를 사용해주기. %를 사용하면 나머지 구하는 식이 됨.
ex) num1//num2 : num1을 num2로 나눈 몫을 구해줌.
ex) num1%num2: num1을 num2로 나눈 나머지를 구해줌.
오늘은 프로젝트 최종 정리 및 점검인데, 나는 내거 코드가 이전에 작성해놓은게 날라가서 결과 보면서 다시 짰다. 그리고 그 시각화도 해보았다. 이전보다는 나아짐. 근데, 너무 피곤했다. 진짜로... 이게 약간 그 프로젝트라는 압박감이 분명히 있는 것 같다. 그리고 그 피피티 만드는거랑 대본짜는거 하려는데, 이제 그 영상발표 제출 노션을 오늘에서야 내가 확인을 했는데, 거기에 그 코드 작성하는거랑, 필수작성해야하는 것들을 오늘에서야 확인해서(근데 다행히 저녁시간 전에 발견) 약간 오늘 다같이 야근해야되지 않을까 했는데, 그 문제는 저녁시간동안 해결을 했다. 이제 다음 문제로 넘어가봅시다. 그다음은 obs문제가 터졌다. 이게 파일로만 저장이 되고 앱은 아예 ㅇ안깔리는것이다...그래서 막 사람들 찾아가고 매니저님도 찾아갔는데 해결이 안되가지고 결국 지금 쓰는 노트북이 이번 캠프시작하고 나서 바꾼거라서 이전거 노트북에는 obs가 잘 깔려있어가지고 그걸로 한번 해보는방법이 남아있어서 지금 그걸 시도해보려고 하는 중이다. 아 진짜힘들다.... 오늘은 밤을 새야하는 걸까..? 제발 그 obs만이라도 잘 작동했으면 좋겠는데,, 오늘 대본 잘 짜서 그 영상찍는것만이라도 잘 되었으면 좋겠다. 화이팅 나자신.황효정 화이팅,,,!!ㅠㅠ