首页 > 解决方案 > Laravel 在带有“ROW_NUMBER() OVER PARTITION”的子查询中混合 GROUP 列 (MIN(),MAX(),COUNT(),...)

问题描述

我知道有很多问题包含该错误,但我还没有看到包含带有 row_numbers 的子查询的问题。

好的,所以我有这个原始查询,当我直接在数据库管理应用程序上运行时它可以工作(我使用 sequel pro)

ff 信息实际上取自我之前的问题

我最终得到了这个查询

select * from (select *, ROW_NUMBER() OVER(PARTITION BY type ORDER BY id) AS seqnum from `example`) as `t` where `seqnum` <= 50

此查询在 sequel pro(数据库管理应用程序)上完美运行

但是当我这样做时(将其包装在 laravel 中的 DB::statement 上):

DB::statement("select * from (select *, ROW_NUMBER() OVER(PARTITION BY type ORDER BY id) AS seqnum from `example`) as `t` where `seqnum` <= 50");

在 Laravel 我得到:

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

任何想法为什么它在 laravel 上失败但在数据库管理应用程序上没问题?

标签: phpmysqlsqllaravel

解决方案


推荐阅读