2014-02-07 76 views
0

我在postgresql中創建了用於寫入查詢的視圖,但多次使用錯誤消息顯示錶名稱。如何解決這個問題呢?如何在postgresql查詢中多次使用一個表名稱

Query 

    SELECT 
     tbcitizen.firstname || '-' || tbcitizen.middlename || '-' || tbcitizen.familyname as firstname, 
     tbcitizen.dateofbirth, 
     tbcity.cityname, 
     tbcontact.contactdetails, 
     tbcitizen.citizenidp 

    FROM 
     public.tbcitizen, 
     public.tbaddress, 
     public.tbcity, 
     public.tbcontact 

    INNER JOIN 
     tbcontact ON tbcitizen.citizenidp = tbcontact.referenceidf AND tbcontact.referencetypeidf = 1 AND 
tbcontact.isprimery = 1 INNER JOIN 

      tbaddress ON tbcitizen.citizenidf = tbaddress.referenceidf AND tbaddress.referencetypeidf = 1 AND 
tbaddress.isprimery = 1 INNER JOIN 

      tbcity ON tbaddress.cityidf = tbcity.cityidp 
    WHERE 

     tbaddress.referencetypeidf = tbcitizen.citizenidp AND 
     tbaddress.referenceidf = tbcitizen.citizenidp AND 
     tbaddress.cityidf = tbcity.cityidp 




Error = table name "tbcontact" specified more than once 

感謝

回答

1

由於錯誤表明 - 你的表tbcontact使用2倍源表。所以它爲postgres數據庫引擎創造了不明確的地方。因此,要解決此問題,您必須使用表別名具有不同的名稱。

希望它能幫助你。

+0

只是爲了安全起見:就像'inner join tbcontact as contactinner'一樣簡單。 –

+0

@Krishnraj好的,我會嘗試檢查答案 –

相關問題