php、postgresql、mysql

php、postgresql、mysql,php,mysql,postgresql,Php,Mysql,Postgresql,我陷入了一个疑问。我不知道到底是什么问题。有人能帮我吗 代码如下: 当我运行查询时,它抛出错误:error:relationcontactors不存在 第5行:来自承包商 select cont.name, cont.total,cp.contractor_id,cp.amount_paid,wt.id FROM ( select name,sum(amount_to_be_paid) as t

我陷入了一个疑问。我不知道到底是什么问题。有人能帮我吗

代码如下:

当我运行查询时,它抛出错误:error:relationcontactors不存在 第5行:来自承包商

select  cont.name, cont.total,cp.contractor_id,cp.amount_paid,wt.id
                FROM
                (
                  select name,sum(amount_to_be_paid) as total
                  from "CONTRACTORS"
                  group by name
                ) cont
                left join
                (
                  select contractor_id,sum(amount_paid) as amount_paid
                  from "CONTRACTOR_PAYMENTS" 
                  group by contractor_id
                ) cp

                    on cont.id= cp.contractor_id
                              left join worktypeids as wt on cont.worktypeid_id = wt.id AND wt.project_id=2

你也可以添加表结构吗

在名为cont的第一个别名中,它与cp连接,所以对于cont,还需要选择id列

更好的post表结构和输出内容?

试试这个

select  cont.name, cont.total,cp.contractor_id,cp.amount_paid,wt.id
                FROM
                (
                  select  name,id, sum(amount_to_be_paid) as total
                  from contractors group by name,id
                ) cont
                left join
                (
                  select contractor_id,sum(amount_paid) as amount_paid
                  from contractor_payments
                  group by contractor_id
                ) cp

                  on cont.id = cp.contractor_id
                              left join worktypeids as wt on cont.worktypeid_id = wt.id AND wt.project_id=2

从未处理过PostgreSQL,但如果这是MySQL,我就不会引用表名;如果下面显示的查询成功,那么您的问题是您有一个contractors表,而不是contractors表。所以,是的,不加引号的写作也能让它发挥作用。