Tech

Join

onesixx 2008. 11. 26. 14:31
반응형

1. LEFT OUTER JOIN(= LEFT JOIN)


LEFT OUTER JOIN 은 A테이블과 B테이블중 기준이 되는 테이블을 Left(왼쪽)에 두고 JOIN하는 명령.
Ex> A LEFT JOIN B  ON 조건 ==> A라는 테이블의 전체 컬럼을 조회한후 B테이블의 컬럼을 JOIN함.
                                                           ON조건은 B테이블을 JOIN하는 조건

------------------------------------------------------------------------
Ex> A 테이블
지역명 책상수량
  30
  20
  40
  50
100

    B 테이블
지역명 의자수량
  30
  70
  80
  20
200
150

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

SELECT A.지역명, A.책상수량, B.지역명, B.의자수량
FROM @ATable AS A
LEFT JOIN @BTable AS B ON(A.지역명 = B.지역명)

지역명 책상수량 지역명 의자수량
30 30
20 70
40 80
50 Null Null
100 20
A테이블의 전체 데이터출력후, 
ON조건인 A.지역명 = B.지역명인 데이터만 B테이블에서 조회해서 같은 A테이블에 맞는 로우에 데이터를 출력


2.RIGHT JOIN


오른쪽의 테이블을 기준으로 두고, JOIN을 한다는 것입니다.
SELECT A.지역명, A.책상수량, B.지역명, B.의자수량 
  FROM @ATable AS A
            RIGHT JOIN @BTable AS B
                         ON (A.지역명 = B.지역명)

지역명 책상수량 지역명 의자수량
30 30
20 70
40 80
100 20
Null Null 200
Null Null 150

 

 

www.sqler.pe.kr 의 윤형식(skybill)님 글.



DECLARE @ATable Table ( 지역명 nvarchar(10) ,책상수량 int)
INSERT INTO @ATable VALUES('가', 30)
INSERT INTO @ATable VALUES('나', 30)
INSERT INTO @ATable VALUES('다', 40)
INSERT INTO @ATable VALUES('라', 50)
INSERT INTO @ATable VALUES('마', 100)

DECLARE @BTable Table ( 지역명 nvarchar(10) ,의자수량 int)INSERT INTO @BTable VALUES('가', 50)

INSERT INTO @BTable VALUES('나', 70)
INSERT INTO @BTable VALUES('다', 80)
INSERT INTO @BTable VALUES('마', 20)
INSERT INTO @BTable VALUES('바', 200)
INSERT INTO @BTable VALUES('사', 150)

반응형

'Tech' 카테고리의 다른 글

ERWin Error  (0) 2008.12.10
Excel 화면에 보이는 셀만 복사  (0) 2008.12.09
산출물작업  (0) 2008.12.02
Mozilla Firefox, Portable Edition  (1) 2008.11.24
Google Calenda  (0) 2008.11.06
12달 액자에 아기사진 넣기  (0) 2008.11.05