2014-09-16 7 views
0

저는 SQL을 처음 사용하고이 상황에서 사용할 올바른 조인을 찾으려고합니다. 표 A는 일련의 고유 한 (즉, 반복 없음) ID를 포함합니다. 표 B에는 표 A에없는 ID를 포함하여 각 ID에 대한 여러 측정 값이 포함되어 있습니다. 표 A에있는 ID에 대해 표 B의 모든 데이터가 포함 된 결합 된 표가 필요합니다.오른쪽 테이블에서 여러 행을 검색하기위한 SQL 조인

예 :

A    B         JOINED: 
ID    ID | count | date    ID | count | date 
-    -- | ----- | ----    -- | ----- | ---- 
001    001 | 512 | 01-Aug-2014   001 | 512 | 01-Aug-2014 
003    001 | 123 | 08-Aug-2014   001 | 123 | 08-Aug-2014 
004    002 | 2325 | 01-Aug-2014   003 | 2325 | 01-Aug-2014 
       002 | 7653 | 08-Aug-2014   003 | 423 | 08-Aug-2014 
       003 | 2325 | 01-Aug-2014   004 | 2  | 01-Aug-2014 
       003 | 423 | 08-Aug-2014   004 | 76 | 08-Aug-2014 
       004 | 2  | 01-Aug-2014 
       004 | 76 | 08-Aug-2014 
       005 | 232 | 01-Aug-2014 
       005 | 67 | 08-Aug-2014 

조인이 올바르게 이해되면 AB에 LEFT 조인을하면 각 날짜마다 여러 줄이 아닌 각 ID에 대해 한 줄만있는 결과가 생성됩니다. 오른쪽 조인에는 B에있는 A에없는 모든 ID가 포함됩니다. 맞습니까?

요약하면 위에서와 같은 결과 테이블을 얻으려면 어떻게해야합니까?

+1

내가 말할 것 – Steve

+0

저는 묻기 전에 www 학교에 다녔습니다. 모든 다른 조인의 차이를 이해하기 위해 고심하고있었습니다. – thornate

답변

2
SELECT A.ID 
     ,B.[Count] 
     ,B.[Date] 
FROM TableA A INNER JOIN TableB B 
ON A.ID = B.ID 

INNER는이 두 테이블 사이에 당신이 일치하는 행을 줄 것이다 가입하세요.

오른쪽 조인은 조인 키워드의 왼쪽에있는 테이블과 조인 키워드 오른쪽에있는 테이블의 모든 행을 일치시킵니다.

LEFT JOIN은 조인 키워드의 오른쪽에있는 테이블과 조인 키워드 왼쪽에있는 테이블의 모든 행을 일치시킵니다.

FULL JOIN은 일치하는 행과 일치하지 않는 행을 두 테이블에서 모두 반환합니다.

일치하는 행 가입 조건 TableB의 ID의 각 열에 matching 값 TABLEA에 ID 열의 각 값을 매핑한다 ON 상태로 정의 하였다.

2

내부 조인은 찾고있는 사람입니다.

질문에 대한 답변입니다. 정확하게 이해했다면 대답은 '아니오'입니다. 왼쪽 조인은 내부 조인 + LHS 테이블에는 있지만 RHS에는없는 모든 것으로, 오른쪽 조인과 마찬가지로 공백을 null로 채 웁니다.

+0

그러나 내부 조인은 각 ID에 대해 한 줄만 생성합니까? – thornate

+0

아, 잠깐 ... 'LEFT'지정자없이 내부 결합을 의미합니까? – thornate

+0

@thornate 아니요, 내부 조인은 ON 조건이 충족하는 모든 행과 일치합니다. 그리고 네. 그냥 INNER JOIN – Steve

0

희망이 도움이 될 것입니다. 표 FROM

SELECT COLUMN_NAME 발 내면은 table1.column_name = ON table2.column_name 표 2 가입;

이 ID를 일치 또한 모든 행을 반환합니다 A. 그렇게 당신이

SELECT* FROM A RIGHT OUTER JOIN B ON B.ID=A.ID ORDER BY ID ASC; 

를 인쇄하고 싶은 에코 B의 모든 행을 얻을 것이다 희망이 당신에게 도움이

0
가장 쉬운 방법은 www 학교에 가서 직접 시도하는 것입니다. 확실히 그것이 SO에 서식을 지정하는 것보다 더 빠를 것이라고 확신합니다
관련 문제