2014-01-18 4 views
-1

당신의 도움이 필요합니다. 나는 다음과 같은 가짜 표 enter image description here두 테이블에서 선택하십시오

내가 원하는 것은 enter image description here

은 다음 표와 다가올 또 다른 가짜 테이블을했습니다 가정 해

enter image description here

select b.Country, b.AnotherCode, a.Code from Country1 a, Country2 b where a.Country=b.Country 

(주 키는 국가) 그러나 마지막 두 행은 표시되지 않습니다. 마지막 테이블에서 보여준 것처럼 모든 행을 검색하도록하는 방법. 왼쪽을 사용

답변

2
select b.Country, b.AnotherCode, a.Code from Country1 a left join Country2 b on a.Country=b.Country 

inadvance 덕분에 당신은 두 집합의 교집합을 반환하고

0

가입 - 당신이 모든 행을 원하는 경우 중 하나를 설정에서, 당신이 가입 전체 사용할 수 있습니다

SELECT  COALESCE(a.Country, b.Country) AS Country, 
      COALESCE(b.AnotherCode, 0) AS AnotherCode, 
      COALESCE(a.Code, 0) AS Code 
FROM  Country1 a 
FULL JOIN Country2 b 
    ON  a.Country = b.Country 

물론, Country1의 레코드와 Country2의 해당 값만 원하면 LEFT JOIN이면 충분합니다. 마찬가지로 연결에 실패 할 때 다른 기본값을 원하면 COALESCE

의 값을 변경하십시오.
관련 문제