【问题标题】:how can one table name used more than once in query of postgresql一个表名如何在postgresql的查询中多次使用
【发布时间】:2014-02-07 08:10:49
【问题描述】:

我在 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

谢谢

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    正如错误所述 - 您的表 tbcontact 使用了 2 次作为源表。因此它为 postgres 数据库引擎造成了歧义。因此,要解决此问题,您必须使用具有不同名称的 表别名

    希望对你有帮助。

    【讨论】:

    • 为了安全起见:就像inner join tbcontact as contactinner 一样简单。
    • @Krishnraj 好的,我会尝试检查答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 2020-10-07
    • 2021-12-03
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    相关资源
    最近更新 更多