2013-12-22 2 views
0

Я следующие базы данных:присоединиться на двух базах данных с использованием PostgreSQL и DBLink

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) 

Я должен присоединиться к столу в первой ко второй базе

Вот SQL я предположили:

Select * from a_t1 full outer join dblink('dbname=server_b','select * from b_t1') 
where a_t1.a_t1_a1>1 

однако я получаю эту ошибку:

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 

ответ

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 
Смежные вопросы