如何在查询postgresql时多次使用一个表名

时间:2014-02-07 08:10:49

标签: 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 个答案:

答案 0 :(得分:1)

由于错误表明 - 您的表 tbcontact 使用了2次作为源表。因此它为postgres数据库引擎创建了歧义。因此,要解决此问题,您必须使用具有不同名称的表别名

希望它能帮到你。

相关问题