2016-10-12 2 views
2

두 데이터베이스 test1, test2이 있으며 모두 company_namepeople 인 테이블 company이 있습니다. 지금은 두 테이블에있는 회사의 이름을 선택합니다 나는이 쿼리와 그것을 달성 :여러 속성의 내부 조인

SELECT t1.company_name 
FROM dblink('dbname=test1', 
      'select company_name from company where companyid IS NOT NULL' 
      ) AS t1(company_name name) 
    INNER JOIN 
    (SELECT company_name 
     FROM dblink('dbname=test2', 
        'select company_name from company where companyid IS NOT NULL' 
       ) AS t2(company_name name) 
    ) AS t3(company_name) 
ON t1.company_name=t3.company_name; 

을하지만 지금은 그들이 같은 company_namepeople이있는 경우 두 테이블에서 회사를 싶어. 위 쿼리의 끝에 평등을 추가하려고 시도했지만 작동하지 않았습니다. 당신은 '

+1

당신이'만들 경우 훨씬 쉬울 것 외국 테이블'대신 .. .. –

+0

당신은 이것이 주어지는 방법이 될 수 없습니다 – Joel

답변

1

  • DBLINK SELECT
  • 테이블 별칭 t1t2
  • JOIN 상태로 people를 추가해야
+0

여기에 내가 한 일이있다. SELECT t1.company_name, t1.people FROM dblink ('dbname = test1', '회사 이름 선택, companyid가 NULL이 아닌 회사의 사람들' ) AS t1 (company_name 이름, 사람 이름) INNER T3 AS (COMPANY_NAME, 사람) (('DBNAME = TEST2', ) T2 (COMPANY_NAME 이름, 사람 이름) AS '를 선택 COMPANY_NAME은 회사 ID는 NOT NULL 기업에서 사람입니다'DBLINK FROM COMPANY_NAME 를 선택) 가 가입 ON t1.company_name = t3.company_name 및 t1.people = t3.people; – Joel

+0

하지만 다음과 같은 오류가 발생합니다 : 오류 : 테이블 "t3"1 열을 사용할 수 있지만 2 열을 지정했습니다 – Joel

+0

정보에 대한 내 실수를 찾았습니다 :) – Joel