SQL – inner join, outer join 사용법 및 예제

HYEONG HWAN, MUN/ 10월 18, 2014/ 미분류/ 2 comments

INNER JOIN  :

-  두개의 집합 (A, B) 의 교집합 이라고 이해하시면 됩니다.

A {1,2,3}  ,    B {2,3,4 }

이면  {2,3} 이 교집합입니다

 

모두의 값에 있는 행들만 포함시키고 그렇지 않는 행들은 제외 시킵니다.

 

OUTER JOIN

-  OUTER JOIN 에는 LEFT , RIGHT, FULL OUTER JOIN 등의 세가지 형식이 있습니다.

두 테이블에서 지정된 쪽인 LEFT 또는 RIGHT 쪽의 모든 결과를 보여준후 반대쪽에 매칭되는 값이 없어도 보여주는 JOIN  입니다.

 

JOIN 이전에 나오는 테이블이 왼쪽(LEFT)테이블이 되고, JOIN 이후에 나오는 테이블은 오른쪽(RIGHT)테이블이 됩니다.

 

예를 보겠습니다.. ^^*

---------------------------------------------------------------

 

CREATE TABLE T1 ( A INT PRIMARY KEY, B VARCHAR(20) )

INSERT INTO T1 (A,B) VALUES (1,’김대중’)
INSERT INTO T1 (A,B) VALUES (2,’김영삼’)
INSERT INTO T1 (A,B) VALUES (3,’노태우’)
INSERT INTO T1 (A,B) VALUES (4,’전두환’)

CREATE TABLE T2 ( A INT PRIMARY KEY, C VARCHAR(20) )

INSERT INTO T2 (A,C) VALUES (2,’SM5′)
INSERT INTO T2 (A,C) VALUES (3,’SONATA’)

-INNER JOIN
-T1, T2 의 INNER JOIN  이면 차를 소유하고 있는 사람만 추출된다.
-- ANSI SQL
SELECT T1.A, T1.B, T2.C
FROM T1 INNER JOIN T2 ON T1.A=T2.A

-- T-SQL
SELECT T1.A,T1.B, T2.C
FROM T1 , T2
WHERE  T1.A = T2.A
a1
 

-- LEFT OUTER JOIN  : 좌측을 기준
-- ANSI SQL
SELECT T1.A,T1.B, T2.C
FROM T1 LEFT  OUTER JOIN T2 ON T1.A=T2.A

-- T-SQL
SELECT T1.A,T1.B, T2.C
FROM T1 , T2
WHERE  T1.A  *= T2.A

a2
 

-- RIGHT OUTER JOIN  : 우측을 기준
-- ANSI SQL
SELECT T1.A,T1.B, T2.C
FROM T1 RIGHT OUTER JOIN T2 ON T1.A=T2.A

-- T-SQL
SELECT T1.A,T1.B, T2.C
FROM T1 , T2
WHERE  T1.A  =* T2.A

a3
 

 

-- FULL OUTER JOIN  : 양쪽 테이블을 둘다 기준으로
-- ANSI SQL
SELECT T1.A,T1.B, T2.C
FROM T1 FULL OUTER JOIN T2 ON T1.A=T2.A

-- T-SQL
SELECT T1.A,T1.B, T2.C
FROM T1 , T2
WHERE  T1.A  =* T2.A
UNION
SELECT T1.A,T1.B, T2.C
FROM T1 , T2
WHERE  T1.A  *= T2.A
a4
a5

2 Comments

  1. 이렇게 쓰는 거였군요. 좋은글 잘읽고갑니다.

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*