관리 메뉴

클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

다수의 테이블 제어하기 4 - 조건을 적용해 두 개의 테이블 조회하기 본문

알고리즘 및 자료 관리/SQL

다수의 테이블 제어하기 4 - 조건을 적용해 두 개의 테이블 조회하기

huenuri 2024. 10. 13. 16:36

조금 전에 SQL 공부를 하다 너무 안 되서 정말 화가 났지만 다시 공부에 집중해 보기로 했다. 지난 6월부터 4달 동안 내가 맘 잡고 공부한 이후로 해결이 안 되는 문제는 거의 없었다. 무슨 일이 있어도 문제를 파고들어 반드시 해결했다. 지금까지 딱 두 가지 문제를 해결하지 못했는데 모두 SQL이었다. 하나는 권한을 부여하는 REVOKE였고, 다른 하나는 오늘 이 문제이다. 어쨌든 이 문제도 조만간 해결이 되리라 본다.

문제가 생길 때 난 사람들에게는 절대로 물어보지 않는다. 내가 혼자서 해결할 때 진짜 그 문제에 대한 열쇠를 쥘 수 있다는 것을 알게 되었기 때문이다. 어쨌든 잠시 이 문제는 접어두고 엘리스도 SQL 공부를 이어서 진행해 볼 것이다.


 

 

 

 

이론 4 - 조건을 적용해 두 개의 테이블 조회하기

 

 

 

 

이 두 개의 테이블을 연결하여 하나의 테이블을 만들었다.

 

 

 

 

 

컬럼에 테이블 명을 붙여서 더 명확하게 지정하는 것이다.


 

 

 

 

실습 5 - 두 테이블 간의 교집합 : INNER JOIN 1

 

 

 

 

 

먼저 두 개의 테이블에 어떤 정보가 들어있는지 살펴본다.

 

rental 테이블에는 책을 빌러 간 날짜와 반납한 날짜가 나와있고, user 테이블에는 어떤 사람인지에 대한 정보가 들어있다. 우리는 이 둘을 조인하여 하나의 테이블로 만들어볼 것이다.

문제의 조건은 rental 테이블의 모든 컬럼을 조회하되 user 테이블과 연결하라고 했으니 코드를 이처럼 쓰면 된다.

 

 

 

왼쪽에는 rental 테이블이, 오른쪽에는 user 테이블이 연결되었다.

 


 

 

 

 

실습 6 - 두 테이블 간의 교집합 : INNER JOIN 2

 

 

 

 

두 테이블이 조인이 되었지만 필요없는 정보까지 조회되어 알아보기 힘들다. 이번에는 id를 기준으로 조인해 볼 것이다.

 

 

 

 

왼쪽에 있는 user_id와 user.id가 연결되었다. 둘의 단어가 비슷해서 많이 헤깔렸다.

 


 

 

 

 

 

실습 7 - 두 테이블 간의 교집합 : INNER JOIN 3

 

 

 

먼저 두 테이블을 inner 조인으로 연결해 본다.

 

그러면 굉장히 많은 테이블이 조회되는데 salaies와 employees의 emp_no가 서로 같지는 않다. 이제 emp_no를 기준으로 연결하기 위해 on을 사용해 조건을 추가해 보겠다.

이 문제에서는 연결하려는 컬럼명이 같았지만, 컬럼명이 어떻게 되는지 이 부분을 잘 확인해야 한다.

 

 

 

이제 emp_no로 잘 연결되었다.

 


 

 

 

 

퀴즈 4 - 조건을 적용해 두 개의 테이블 조회하기

 

 

 

 


 

 

 

학습을 마치고

오랜만에 엘리스로 공부해 보니 SQL 책 보다 이해하기가 더 쉬웠다. 솔직히 오늘은 공부가 잘 되지 않고 평소보다 집중력이 많이 떨어지는 것 같다.

그래도 매일 하루 최소 8시간은 공부하려고 한다. 이제 2개의 이론 수업이 남아있으니 조금만 더 힘을 내서 해보자!