SQL

sql에서의 inner join

Ambitions 2020. 2. 4. 17:54

 

개발 진행중 RDB를 사용하고있다면 inner join의 사용빈도가 많은데, 오늘은 inner join을 사용하는 방법에 대해서 제가 아는 만큼 간단히 정리해 보고자 한다.

 

* inner join(내부조인) 이란 ? 

- 두 테이블간에 공통된 데이터를 이용해 데이터를 조회해오는 방법이라고 생각하면 될거같은데, 정확하게 표현한것인지는 모르겠다.

다른 글들에서는 교집합을 가져온다고 서술되어 있는데, 제 입장에서는 무슨의미인지 잘 와닿지 않는것 같다..

 

[A테이블]                [B테이블]

id  name  age       id    aid   job

1   kim     20        1      1    dev

2   woo    24        2      2    std

 

위와 같은 테이블이 존재할 때 보통 테이블 설계시 데이터 중복을 최소화 하기 위해 위 예시처럼 설계를 하는 것 같다.

여기서 문제는 a테이블의 데이터와 b테이블의 공통된 값을 이용해 두 테이블간의 데이터를 가져오고 싶을 때 인데 이런 경우 inner join을 이용하여 데이터를 조회해 올 수 있다.

 

쿼리문은 select a.id, a.name, a.age, b.id, b.job 

from tableA as a inner join tableB as b on a.id = b.aid;

로 사용할 수 있고, 설명하자면 중요한 부분만 설명하자면 

from 절에서 tableA as a inner join tableB as b on a.id = b.aid

여기서 as의 의미는 alias로 테이블명을 이제부터 별칭으로 사용하겠다는 의미가 된다.

다음에 이어지는 inner join이라는 문장을 이용해 a테이블과 조인 될 테이블을 기술해준다, a테이블과 조인될 b테이블을 똑같이 별칭을 b로 정해준 다음, on 문장을 이용해 a의 id와 b의 aid를 이용해 조회해오겠다는 조건을 기술해준다.

 

쿼리문이 실행되면 결과는 다음과 같이 조회되게 된다.

id name age id job

1   kim   20  1  dev

2   woo  24  2  std

 

inner join은 서로 연관관계가 있는 테이블간에 주로 사용하는 것 같으며, join중에 제일 사용빈도가 높은 것 같다.

또 추가적으로 sql문법을 검사해주는 사이트를 발견해서 추가해놓는다.

https://www.eversql.com/sql-syntax-check-validator/

 

SQL Syntax Check Online, SQL Validator, Instant SQL Compiler Online

Online SQL Query Optimization, Easily, Automatically

www.eversql.com