php、postgresql、mysql

php、postgresql、mysql,php,mysql,postgresql,Php,Mysql,Postgresql,我陷入了一个疑问。我不知道到底是什么问题。有人能帮我吗 代码如下: 当我运行查询时,它抛出错误:error:relationship“contactors”不存在 第5行:来自“承包商” 你也可以添加表结构吗 在名为cont的第一个别名中,它与cp连接,因此对于cont,您还需要选择id列 更好的post表结构和输出内容?试试这个 select cont.name, cont.total,cp.contractor_id,cp.amount_paid,wt.id

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

代码如下:

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


你也可以添加表结构吗

在名为
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表。所以,是的,不加引号的写作也能让它发挥作用。
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