2013-12-22 3 views
0

나는 다음과 같은 데이터베이스있다 :는 PostgreSQL의를 사용하여 두 데이터베이스에 가입하고 DBLINK

: 내가 추정 한 SQL 내가 두 번째 데이터베이스 여기

에 최초의 테이블에 가입해야

server_a { 
    a_t1 (a_t1_a1, a_t1_a2); 
    a_t2 (a_t2_a1, a_t2_a2); 
} 
server_b { 
    b_t1 (b_t1_a1, b_t1_a2); 
    b_t2 (b_t2_a1, b_t2_a2); 
} 

attribute 1 = serial not null (primary) 
attribute 2 = character varying(50) 

입니다

ERROR: syntax error at or near "where" 
LINE 1: ...in dblink('dbname=server_b','select * from b_t1') where a_t1... 
                  ^
********** Error ********** 

ERROR: syntax error at or near "where" 
SQL state: 42601 
Character: 83 
,536,913,632 :
Select * from a_t1 full outer join dblink('dbname=server_b','select * from b_t1') 
where a_t1.a_t1_a1>1 

그러나 나는이 오류를 얻고있다 10

답변

2

이렇게 해보십시오.

원격 테이블의 별칭을 지정하고 쿼리를 수행하십시오.

Select * from a_t1 full outer join dblink('dbname=server_b','select * from b_t1') as tmp_b_t1 (a1 serial not null (primary) , a2 character varying(50)) 
where a_t1.tmp_b_t1>1