본문 바로가기

SQL 코딩 입문

연결, 과정의 재미

1. 2.5주차

3주차 강의 제목에서 join을 보고, 궁금증을 참을 수 없어 듣기 시작했다.

데이터 추출하는 툴에서 많이 본 단어인데, 항상 복잡하게 쓰여 있어서 이해하지 못했기 때문이다.

이번에 알 수 있게 된다니, 너무 설렜다.

 

2. 실전

본격적으로 쿼리 작성해보기 시작.

선생님께서 알려주는 것을 보고 듣기만 해도 되지만, 나는 시작하기 전에 항상 멈추고 내가 뭔가 해보려고 한다.

그러다 보니 시간도 오래 걸리지만, 나중에 정답과 맞춰보면 내가 뭐가 부족한지 알기에 너무 좋다.

 

틀린 그림 찾기처럼 재미있다. #1

연습 결과
정답

 u. 빼먹었다. 별칭 붙은 테이블을 정확하게 참조하는데 아직 익숙하지 않다.

o.email 했다가 u.email 했다가 왔다 갔다 하고 있다. from으로 불러온 테이블을 우선으로 참조하는 것으로 나만의 규칙을 정해야 할 듯.

"" 큰 따옴표도 쿼리는 잘 돌아갔지만, 정답은 '' 였다. string은 '' 쓰는 것이니까 정답이 맞는데, 쿼리가 왜 잘 돌아갔는지는 아직도 의문.

이유를 댓글로 달아주시면 정말 감사 드리겠습니다.

 

과정도 재미있다. #2

is_registed = 0 사람 수를 세야 한다고 하니, where 조건을 쓰지도 않고 count에다가 일단 넣었다. 잊지 말자 빌드업.

 ㄴ 변명을 하자면 is_registered = 0 조건이 무엇인지 명확하게 이해하지 못했다.

order by count(*) 이건 생각하지도 못했다. 왜 필드명만 넣어야 한다고 생각했을까. 이제라도 알았으니 다음에 꼭 써먹자.

 

결론: 배운 대로 한 줄씩 쓰고 실행해보자.

 

3. 발견

지금 개발 일지 쓰면서 알았다.

inner join 아니라 left join 쓰고 있었다.

 

left join은 불러오는 테이블에 데이터가 없어도, 일단 붙여서 볼 수 있다고 생각했던 것 같다.

큰 테이블(A)에다가 작은 테이블(B) 붙여서 NULL 값을 일단 보고 싶었던 것 같다.

 

하지만 실전에서는 교집합 해서 필요한 데이터만 추출이 필요하다.

inner join 먼저 쓸 수 있게 손에 익혀두자.

'SQL 코딩 입문' 카테고리의 다른 글

완강, 또 다른 시작  (0) 2021.05.05
다른 쿼리, 같은 결과  (0) 2021.05.02
쉼표, 작지만 큰 차이  (0) 2021.05.01
복습, 또 다른 시작  (0) 2021.04.24
시작, 설레임을 담아  (0) 2021.04.18