'INNER JOIN'에 해당하는 글 1건

테이블 작업을 하다 보면,
여러 테이블의 데이터를 조인해서 가져오도록 설계를 많이 합니다.

그러다 보면 데이터가 기본 1:1 혹은 1:N개로 존재를 해야 하는데,
그렇지 않을 경우 즉, 1:0으로 된 데이터를 가져와야 할 경우도 있습니다.

보통의 테이블 조인을 INNER JOIN이라 말을 하고,
저런 데이터가 없는 경우에도 가져와야 하는 JOIN을 OUTER JOIN 이라고 합니다.

아래와 같은 테이블이 있습니다.

select * from table1;

field1         field2       field3

200901  1   40

200901  2   40

200901  3   40

200901  4   40

200901  5   40

200901  6   40

200901  7   40

200901  8   40

 

select * from table2;

field1         field2       field3

200901  1   50

200901  2   60

200901  3   70

200901  4   80


INNER JION의 경우, 평소에 하던 대로 하면 됩니다.
SELECT a.*, b.*
FROM table1 a, table2 b
WHERE a.field1 = a.field1
  AND a.field2 = b.field2
굳이 다른 방식으로 이해하려 하지 않아도 됩니다.

위 테이블 두개를 묶어서 관련된 데이터 b.field3값도 확인하고 싶습니다. 이때, 없는 레코드의 경우도 보여주고 싶을 때는 OUTER JOIN을 사용하게 됩니다.

OUTER JOIN의 경우는 좀 복잡합니다. 물론 INNER JOIN 의 정확한 것을 배워도 되지만,
일단 FM은 아래와 같습니다.
SELECT a.*, b.field3
FROM table1 a OUTER JOIN table2 b ON a.field2 = b.field2
WHERE a.field1 = '200901'
JOIN 부분은 없어도 NULL 값으로 연결을 해주고,
WHERE 이하 구문은 INNER JOIN 형태로 연결을 해줍니다.

현재도 *= 문법을 지원을 하고 있으나,
몇가지 버그 등의 문제로 추천하는 문법은 아닙니다.
신고

WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  18 , 댓글  4개가 달렸습니다.
  1. 둘은 너무나도 사랑해서 서로 섞이고 싶어했지만 서로 섞이고 싶어 할수록 둘은 멀어질 수밖에 없었습니다.
  2. 삶의 목표는 너무 많은 아니라, 계속 한 것은, 투자 관심과 열정을 찾아, 당신은 성공합니다.
  3. http://www,Topics related articles:


    http://www.haewon.name/55 复件 (19) 韩

    .lisseurghdle.com/ http://www,Topics related articles:


    http://peterhan.kr/category/?page=45 复件 (16) 韩

    .hairstraightenerls,Topics related articles:


    http://enerhythm.com/108 复件 (16) 韩

    .com/
  4. 당신은 내가사랑할 만한 사람이 아니예요,사랑하지 않으면 안될 사람이예요.
secret