2016-11-03 4 views
0

두 테이블 A와 B가 있으므로 두 테이블 모두 열 주소를가집니다. 표 A에는 id1 열이 있고 표 B에는 id2 열이 있습니다. id1과 id2 열의 값이 같으면 주소 열 (표 B가 될 수 있음)을 가져 오려고합니다. SQL 명령에서 어떻게 할 수 있습니까? 이러한 열이 동일하거나 주소가 동일하거나 유사 할 경우 언급 할 가치가 있으므로 주소는 두 테이블 중 하나 일 수 있습니다. 저는 SQL에 매우 익숙해졌으며 귀하의 도움을 많이 주신 것입니다. 당신이 시도해야 사전테이블 A의 열 A와 테이블 B의 열 B가 같을 경우 두 테이블 (테이블 A와 B)에서 결과를 얻습니다.

+0

귀하의 질문에 테이블의 스키마, 적절한 데이터 샘플 및 예상 결과가 표시됩니다 ... – scaisEdge

답변

0

에 감사합니다 :

Select address 
from tablea as a, table b as b 
where b.id =a.id 
+0

where 절에서 오래된 구식의 연약한 조인을 사용하지 말고 명시 적'JOIN' 연산자를 사용하십시오 . –

0

내가 표 1의 주소가 누락있는 기회가 있으리라 믿고있어, 그렇지 않으면 그냥 필드를 선택하는 문제 일 것입니다. 난 그냥 경우 (ㅎ) 그것을 처리하는 case 문을 추가,하지만 당신은 내부의 조합을 가지고 및 외부 조인 경우하지 않을 경우 당신은,

Select a.id1, 
    case when a.address is not null 
     then a.address 
     else b.address end as new_address. 
from Table1 A, Table2 B 
where a.id1 = b.id2 

또한 a.address와 그 전체 비트를 대체 할 수 (또는 조인이 많이 발생하면) 명시 적 조인 기준을 추가하려고합니다.

+0

where 절에서 오래된 구식의 연약한 조인을 사용하지 말고 명시 적'JOIN' 연산자를 사용하십시오. –

+0

암시 적 조인이 올바른 위치에서 사용되는 경우 취약한 부분이 없습니다. 조인 연산자는 외부 조인을 수행하는 경우에만 필요합니다. –

+0

누락 된 조인 조건은 오류 메시지로 이어지지 않으므로 크로스 조인으로 쉽게 끝나기 때문에 암시 적 조인 **이 취약합니다. 실수로 JOIN 연산자를 사용하여 교차 결합을 작성하는 것은 불가능합니다. http://hastebin.com/tayimobapo.sql을보고 조인 조건이 없는지 알아 내야 할 시간을 알려주십시오. –

관련 문제