2013-04-16 104 views
0

問題策略從差異表得到差異數據庫中的數據

  • 我有兩個數據庫user_works數據庫和定價數據庫。
  • 我想拿兩個表的連接USER_TABLE這是user_works使用USER_ID

數據庫& rent_table這是定價的數據庫中,我做了什麼至今

  • 我第一個呼叫user_works D b。
  • 從user_table獲取id。
  • 然後通過IDS定價分貝

實施例到rent_table:

$user_id = select user_id fron user_table WHERE name=abc 

傳遞$ USER_ID到DBOBJECT user_works db和提取用戶ID,然後

$rent = select user_id,rent from rent_table WHERE user_id IN ($user_ids) 

通過$租定價數據庫的dbObject 我想在php應用程序中執行此操作

有沒有更好的方法來做到這一點。定價數據庫確實是重樣使用臨時表等。

+0

mysql或postgresql? –

+0

我正在使用postgresql – Abhishek

+0

什麼是「* diff *數據庫」? –

回答

1

從定價數據庫連接使用DBLINK

select r.* 
from 
    dblink(
     'dbname=user_works password=password user=user', 
     $$ select user_id from user_table where name = 'abc' $$ 
    ) as u(user_id int) 
    inner join 
    rent_table r on r.user_id = u.user_id 

您需要創建DBLINK擴展爲超級用戶:?

create extension dblink; 

或者從遠程數據庫創建本地視圖:

create view user_table as 
select * 
from 
    dblink(
     'dbname=user_works password=password user=user', 
     $$ select user_id, name from user_table $$ 
    ) as t(user_id int, name text) 
; 

現在查詢它爲wer e本地:

select * from user_table where name = 'abc'; 
+0

我可以使用可以創建的臨時表之類的東西,然後通過連接進行連接。那可能嗎??? – Abhishek

+0

@Ahishek編輯。你可以用同樣的方式創建臨時表,但我認爲這個視圖會更好。 –