Select 在 Postgres 视图上查询 Prisma Client 时返回 0 行,而这不应该
Select query Prisma Client on Postgres view returning 0 rows when it shouldn't
我在尝试 select Postgres 视图中按名称过滤的行时遇到问题。
查询结果应该是 company_portfolio 中的一家名为 'any company 2' 的公司。但是,它没有返回公司,而是 returns 什么都没有。我的意思是一个空的公司数组,而不是一个包含名称为 'any company 2'.
的公司的数组
我创建了一个看起来像这样的 Postgres 视图:
CREATE OR REPLACE view company_portfolio as
SELECT company.id,
company.name,
...
FROM "Company" company
LEFT JOIN
(SELECT DISTINCT ... FROM
(SELECT DISTINCT ... FROM "Contract") a
GROUP BY 1) as smpLists
ON company.... = smpLists...
我创建了一个公司,名称为:'any company 2'。
我正在使用我的 prisma 客户端查询 table,如下所示:
if (params.name) {
filters = `${filters} AND "name" = '${params.name}'`;
}
return this.prisma.$queryRaw(
`
SELECT * FROM "company_portfolio"
WHERE id IS NOT NULL ${filters}
ORDER BY ${orderBy}
LIMIT ${params.limit}
OFFSET ${params.offset}
`
);
所以最后的查询是这样的:
SELECT * FROM "company_portfolio"
WHERE id IS NOT NULL AND name = 'any company 2'
ORDER BY name ASC
LIMIT 1
OFFSET 1
返回的是一个空数组,因此未正确 selected 公司的名称 = 'any company 2'。
我直接在数据库上执行了类似的查询,它 returns 所需的公司。
有没有人发现这里可能有什么问题?
解决了。
我正在设置偏移量 = 1 和限制 = 1。这是 returns 来自 select 查询结果的第二行。
因为只有 1 条记录符合 select 查询的条件,所以没有第二条记录,因此我看到的是一个空数组。
我在尝试 select Postgres 视图中按名称过滤的行时遇到问题。
查询结果应该是 company_portfolio 中的一家名为 'any company 2' 的公司。但是,它没有返回公司,而是 returns 什么都没有。我的意思是一个空的公司数组,而不是一个包含名称为 'any company 2'.
的公司的数组我创建了一个看起来像这样的 Postgres 视图:
CREATE OR REPLACE view company_portfolio as
SELECT company.id,
company.name,
...
FROM "Company" company
LEFT JOIN
(SELECT DISTINCT ... FROM
(SELECT DISTINCT ... FROM "Contract") a
GROUP BY 1) as smpLists
ON company.... = smpLists...
我创建了一个公司,名称为:'any company 2'。
我正在使用我的 prisma 客户端查询 table,如下所示:
if (params.name) {
filters = `${filters} AND "name" = '${params.name}'`;
}
return this.prisma.$queryRaw(
`
SELECT * FROM "company_portfolio"
WHERE id IS NOT NULL ${filters}
ORDER BY ${orderBy}
LIMIT ${params.limit}
OFFSET ${params.offset}
`
);
所以最后的查询是这样的:
SELECT * FROM "company_portfolio"
WHERE id IS NOT NULL AND name = 'any company 2'
ORDER BY name ASC
LIMIT 1
OFFSET 1
返回的是一个空数组,因此未正确 selected 公司的名称 = 'any company 2'。
我直接在数据库上执行了类似的查询,它 returns 所需的公司。
有没有人发现这里可能有什么问题?
解决了。
我正在设置偏移量 = 1 和限制 = 1。这是 returns 来自 select 查询结果的第二行。
因为只有 1 条记录符合 select 查询的条件,所以没有第二条记录,因此我看到的是一个空数组。