본문 바로가기
  • 게임 개발과 프로그래밍 그리고 인공지능
알고리즘 및 자료 관리/SQL

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

by huenuri 2024. 10. 13.

조금 전에 SQL 공부를 하다 너무 안 돼서 정말 화가 났지만 다시 공부에 집중해 보기로 했다. 지난 6월부터 4달 동안 내가 맘 잡고 공부한 이후로 해결이 안 되는 문제는 거의 없었다. 무슨 일이 있어도 문제를 파고들어 반드시 해결했다. 지금까지 딱 두 가지 문제를 해결하지 못했는데 모두 SQL이었다. 하나는 권한을 부여하는 REVOKE였고, 다른 하나는 오늘 이 문제이다. 어쨌든 이 문제도 조만간 해결이 되리라 본다.
문제가 생길 때 난 사람들에게는 절대로 물어보지 않는다. 내가 혼자서 해결할 때 진짜 그 문제에 대한 열쇠를 쥘 수 있다는 것을 알게 되었기 때문이다. 어쨌든 잠시 이 문제는 접어두고 엘리스도 SQL 공부를 이어서 진행해 볼 것이다.


 
 
 
 

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

 

 
 
 

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

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


 
 
 
 

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

 

 
 


 
 
 

1. 테이블 조회하기

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

 
rental 테이블에는 책을 빌러 간 날짜와 반납한 날짜가 나와있고, user 테이블에는 어떤 사람인지에 대한 정보가 들어있다. 우리는 이 둘을 조인하여 하나의 테이블로 만들어볼 것이다.
문제의 조건은 rental 테이블의 모든 컬럼을 조회하되 user 테이블과 연결하라고 했으니 코드를 이처럼 쓰면 된다.


 
 
 

2. 문제 풀기

 

 

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


 
 
 
 

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

 

 
 

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


 
 
 

문제 풀기

 

 

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


 
 
 
 
 

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

 


 
 

1. 테이블 연결하기

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

 
그러면 굉장히 많은 테이블이 조회되는데 salaies와 employees의 emp_no가 서로 같지는 않다. 이제 emp_no를 기준으로 연결하기 위해 on을 사용해 조건을 추가해 보겠다.
이 문제에서는 연결하려는 컬럼명이 같았지만, 컬럼명이 어떻게 되는지 이 부분을 잘 확인해야 한다.


 
 
 

2. 조건 추가하기

 

 

 
이제 emp_no로 잘 연결되었다.
 
 


 
 
 
 

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

 

 
 

 


 
 
 

학습을 마치고

오랜만에 엘리스로 공부해 보니 SQL 책 보다 이해하기가 더 쉬웠다. 솔직히 오늘은 공부가 잘 되지 않고 평소보다 집중력이 많이 떨어지는 것 같다.
그래도 매일 하루 최소 8시간은 공부하려고 한다. 이제 2개의 이론 수업이 남아있으니 조금만 더 힘을 내서 해보자!