Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用knex实现的视图迁移错误_Sql_Postgresql_Knex.js - Fatal编程技术网

Sql 使用knex实现的视图迁移错误

Sql 使用knex实现的视图迁移错误,sql,postgresql,knex.js,Sql,Postgresql,Knex.js,我有一个SQL查询,是我的公司导师编写的,它创建了一个包含以下列的表:凭证Id、数量、使用的和剩余的,然而,他向我展示了一个我在postgres数据库中需要什么的示例,并将其写在查询工具中。我做了一些小的修改,但是当我试图通过迁移创建物化视图时,以下查询抛出一个错误: 以下是他在postgres上的查询工具中写下的查询,该工具工作起来很有魅力: SELECT v.voucher_id,v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity -

我有一个SQL查询,是我的公司导师编写的,它创建了一个包含以下列的表:凭证Id、
数量、
使用的
剩余的
,然而,他向我展示了一个我在postgres数据库中需要什么的示例,并将其写在查询工具中。我做了一些小的修改,但是当我试图通过迁移创建物化视图时,以下查询抛出一个错误:

以下是他在postgres上的查询工具中写下的查询,该工具工作起来很有魅力:

SELECT v.voucher_id,v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity - COUNT(ov.voucher_id) AS "remaining"
      FROM public.vouchers v
      LEFT OUTER JOIN public.order_vouchers ov ON (v.voucher_id = ov.voucher_id)
      GROUP BY v.voucher_id, v.quantity
在使用knex进行迁移时,我有:

CREATE MATERIALIZED VIEW mv_vouchers
    SELECT * FROM vouchers,
      SELECT v.voucher_id,v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity - COUNT(ov.voucher_id) AS "left"
      FROM public.vouchers v
      LEFT OUTER JOIN public.order_vouchers ov ON (v.voucher_id = ov.voucher_id)
      GROUP BY v.voucher_id, v.quantity

这个错误是在
SELECT
附近抛出的,我使用的表是
凭单
订单id
。我对这一点非常陌生,非常感谢您的帮助。

您有两个
SELECT
子句。这是你想要的吗

CREATE MATERIALIZED VIEW mv_vouchers as
      SELECT v.voucher_id, v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity - COUNT(ov.voucher_id) AS "left"
      FROM public.vouchers v LEFT OUTER JOIN
           public.order_vouchers ov
           ON v.voucher_id = ov.voucher_id
      GROUP BY v.voucher_id, v.quantity;

啊,我在考虑迁移如何在不使用
SELECT*FROM dictionals
的情况下获取所有
凭证
表数据,我假设postgres查询工具对所有表数据都有自动作用域,而迁移没有。我现在就试试。