2014-02-07 3 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

를 오류가 있다는 주장으로 - 소스 테이블로 2 번 사용 테이블 tbcontact. 그래서 Postgres 데이터베이스 엔진에 모호함을 만듭니다. 따라서이 문제를 해결하려면 테이블 별칭을 다른 이름으로 사용해야합니다.

희망이 있으면 도움이 될 것입니다.

+0

그냥 안전 측면에있다 : 그것은 '내부자 조인 tbcontact contactinner'처럼 간단합니다. –

+0

@Krishnraj ok 답변을 확인하려고합니다. –

관련 문제