재유's

[MySQL] 조인 (EQUI, INNER, OUTER) 본문

IT Story/: : MySQL

[MySQL] 조인 (EQUI, INNER, OUTER)

Stella_NY 2018. 12. 24. 10:39

조인(JOIN) 

두 개 이상의 테이블에서 동시 데이터 검색



EQUI 조인

FROM 절에서 테이블을 콤마로 구분하고 WHERE절에서 조인조건을 명시항 두 개 이상의 테이블에서 동시 데이터 검색


  SELECT {컬럼 이름 [ as 별칭] ... }

  FROM 테이블1, 테이블2, ..., 테이블n 

  WHERE 조인조건 [ AND 검색조건 ]

  [GROUP BY 컬럼이름]

  [ORDER BY 컬럼이름 [정렬옵션]] 


- 추가적인 검색 조건은 조인 조건 뒤에 AND로 명시

- FROM절에서는 데이블 이름을 나열하면서 별칭 지정 가능

- 두개 이상의 테이블에서 같은 이름의 컬럼이 있을 경우

SELECT에서 각 컬럼을 테이블이름.컬럼이름 혹은 별칭이름.컬럼이름 형태로 지정


ex)

  SELECT s.name, s.deptno, d.name

  FROM student s, department d

  WHERE s.deptno = d.deptno AND s.name = '홍길동';




INNER 조인

EQUI조인의 다른형태.


  SELECT {컬럼 이름 [ as 별칭] ... }

  FROM 테이블1 INNER JOIN 테이블 2

  ON 조인조건

  [WHERE AND 검색조건 ]

  [GROUP BY 컬럼이름]

  [ORDER BY 컬럼이름 [정렬옵션]] 


ex)

  SELECT s.name, s.deptno, d.name

  FROM student s INNER JOIN department d

  ON s.deptno = d.deptno 

  WHERE s.name = '홍길동';




OUTER 조인

양쪽 테이블중에서 어느 한 테이블의 모든 데이터를 출력해야 하는 경우 사용. (LEFT, RIGHT)

지정된 방향의 테이블에서 모든 데이터 출력을 보장한다.


  SELECT {컬럼 이름 [ as 별칭] ... }

  FROM 테이블1 LEFT OUTER JOIN 테이블 2

  ON 조인조건

  [WHERE AND 검색조건 ]

  [GROUP BY 컬럼이름]

  [ORDER BY 컬럼이름 [정렬옵션]]  


ex)

  SELECT s.name, s.deptno, d.name

  FROM student s LEFT OUTER JOIN department d

  ON s.deptno = d.deptno 

  WHERE s.name = '홍길동'


'IT Story > : : MySQL' 카테고리의 다른 글

[MySQL] 데이터 입력, 수정, 삭제 (INSERT, UPDATE, DELETE)  (0) 2018.12.26
[MySQL] 서브쿼리 (SubQuery)  (0) 2018.12.24
[MySQL] 그룹조회  (0) 2018.12.24
[MySQL] 집계함수  (0) 2018.12.24
[MySQL] 날짜 관련 함수  (0) 2018.12.21
Comments