sub_title
 MSSQL
제   목 MSSQL - Inner Join 의 사용
작성자 다자래 등록일 2008-07-26 18:22:43 조회수 35,734

[MSSQL - Inner Join 의 사용]

Inner Join은 우리가 일반적으로 알고 있는 조인이며 결합 조건에 만족하는 데이타를 추출합니다.

1) 두개의 테이블을 조인하기

사용법) FROM 절뒤에 조인하고자 하는 테이블들이 오고 테이블 사이에 INNER JOIN 문이 삽입됩니다.
그 뒤에 ON 이 오고 조인하고자 하는 조건을 적어줍니다.

예) SELECT * FROM Marketer_Tbl INNER JOIN DeptCode_Tbl ON Marketer_Tbl.dCode = DeptCode_Tbl.dCode

위에 문장은 Marketer_tblDeptCode_Tbl 에서 dCode 가 같은 모든 데이타를 추출합니다.

별칭의 사용) 테이블명은 별칭으로 대체할수 있습니다.

예) SELECT * FROM Marketer_Tbl a INNER JOIN DeptCode_Tbl b ON a.dCode = b.dCode

위에 문장은 Marketer_tbla 라는 별칭으로 DeptCode_Tblb 라는 별칭으로 사용했습니다.
결과값은 Marketer_tblDeptCode_Tbl 에서 dCode 가 같은 모든 데이타를 추출합니다.

한쪽의 결과값만 보기) 보고자 하는 테이블 쪽에 "테이블.* "을 사용합니다.

예) SELECT Marketer_tbl.* FROM Marketer_Tbl INNER JOIN DeptCode_Tbl
ON
Marketer_Tbl.dCode = DeptCode_Tbl.dCode

위에 문장은 조건에 맞는 Marketer_tbl의 데이타만 보여줍니다.

예) SELECT a.* FROM Marketer_Tbl a INNER JOIN DeptCode_Tbl b ON a.dCode = b.dCode

위에 문장도 별칭을 사용했을 뿐 Marketer_tbl의 데이타만 보여줍니다.

2) 다수의 테이블을 조인하기

사용법) 세개 이상의 테이블을 조인하기 위해서는 두개의 테이블이 먼저 조인되고, 그 결과값을 하나의 테이블로 간주하여다시 조인을 거는것으로 생각하면 쉽습니다. 테이블의 갯수가 늘어날 때 마다 계속 조인의 반복입니다.

예) SELECT * FROM Receipt_tbl a INNER JOIN Rgubun_tbl b ON a.rNo = b.rNo
INNER JOIN Marketer_Receipt_tbl c ON b.rNo = c.rNo

위의 문장에서는 세개의 테이블 Receipt_tbl, Rgubun_tbl, Marketer_tbl 이 조인에 참여합니다.
Receipt_tblRgubun_tbl 에서 rNo 가 같은 데이타를 추출하여 Marketer_Receipt_tblrNo 가 같은 데이타를 최종적으로 추출합니다.

예) SELECT * FROM Receipt_tbl a INNER JOIN Rgubun_tbl b ON a.rNo = b.rNo
INNER JOIN Marketer_Receipt_tbl c ON b.rNo = c.rNo
INNER JOIN Company_tbl d ON a.cCode = d.cCode

위의 문장에서는 네개의 테이블이 조인에 참여하는 것을 보여주고 있습니다.
Receipt_tbl, Rgubun_tbl, Marketer_Receipt_tblrNo 가 같은 데이타를 추출한 결과값 중 Company_tblcCode 와 같은 데이타를 최종적으로 추출합니다.

※ 다수 테이블의 조인에서는 선행되는 조인의 결과와 그 다음의 테이블이 차례로 조인되는 것으로 생각하면 쉽습니다.
아래의 예를 참고하시기 바랍니다.

  ( ( ( ( A + B ) + C ) + D ) + ... N )

※ 예제를 간편하게 작성하기 위해서 와일드카드 문자 * 를 사용하여 모든 컬럼을 가져오게 했으나 일반적으로 컬럼을
가져올때는 꼭 필요한 컬럼만 가져오도록 하는 것이 쿼리성능에 좋습니다.

작성자: 다자래(mfcchang@naver.com)
웹제작 토탈 커뮤니티 http://www.webmadang.net
 
3
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
9  [MSSQL] 기본키 제약조건의 삭제   member 수확물 0 / 0 29236 2008-07-31
8  SQL 테이블간의 차집합, 교집합 구하기   member 수확물 0 / 0 31606 2008-07-31
7  MSSQL - Outer Join 의 사용   member 다자래 0 / 0 38917 2008-07-30
6  MSSQL - Inner Join 의 사용   member 다자래 3 / 0 35734 2008-07-26
5  MSSQL - text, ntext 길이(바이트) 구하기   member 다자래 3 / 1 42547 2008-07-21
4  MSSQL - GROUP BY 를 이용한 중복 데이타 삭제 이미지   member 다자래 10 / 0 66952 2008-07-14
3  MSSQL - GROUP BY 를 이용한 중복 데이타 체크 이미지   member 다자래 16 / 4 96398 2008-07-12
2  MSSQL 뷰(VIEW) 사용하기 - 기초   member 다자래 8 / 1 54280 2008-07-09
1  MSSQL 참조키(Foreign Key) 설정하기   member 다자래 7 / 0 69681 2008-06-21
write
button [1]