Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Postgresql 如何在laravel eloquent中按外键分组并检索其他列值_Postgresql_Laravel_Eloquent - Fatal编程技术网

Postgresql 如何在laravel eloquent中按外键分组并检索其他列值

Postgresql 如何在laravel eloquent中按外键分组并检索其他列值,postgresql,laravel,eloquent,Postgresql,Laravel,Eloquent,我正在尝试执行以下查询: return Book::select('id', 'title', 'author_id')->groupBy('author_id')->get(); 它回来了 分组错误:7错误:列“book.id”必须出现在GROUP BY子句中或在聚合函数中使用 不幸的是,无法使用PostgreSQL运行此类查询,因为它要求SELECT列表中指定的所有字段都是GROUP BY表达式的一部分 您可以在此处阅读其背后的基本原理:不幸的是,无法使用PostgreSQL运

我正在尝试执行以下查询:

return Book::select('id', 'title', 'author_id')->groupBy('author_id')->get();
它回来了

分组错误:7错误:列“book.id”必须出现在GROUP BY子句中或在聚合函数中使用


不幸的是,无法使用PostgreSQL运行此类查询,因为它要求SELECT列表中指定的所有字段都是GROUP BY表达式的一部分


您可以在此处阅读其背后的基本原理:

不幸的是,无法使用PostgreSQL运行此类查询,因为它要求在SELECT列表中指定的所有字段都是GROUP BY表达式的一部分


您可以在此处阅读其背后的基本原理:

不幸的是,无法使用PostgreSQL运行此类查询,因为它要求在SELECT列表中指定的所有字段都是GROUP BY表达式的一部分


您可以在此处阅读其背后的基本原理:

不幸的是,无法使用PostgreSQL运行此类查询,因为它要求在SELECT列表中指定的所有字段都是GROUP BY表达式的一部分


您可以在这里阅读它背后的基本原理:

您编写的查询没有问题……它可以与其他数据库(如Mysql和sqlite)一起工作,没有问题。。。 问题是您的postgreSQL crud基础还不清楚

对于Mysql:它将为一个author和author\u id列获取任意一行,为其他两列(id和title)从与author匹配的行中获取任意随机值

但对于postgreSQL而言,情况并非如此

postgreSQL统计信息文档,select子句中引用的任何和所有列都必须在group by子句中使用,唯一的例外是,如果在聚合函数(如min、max等)中使用列名,则需要在group by子句中提及该列名


因此,您的错误

您编写的查询没有任何问题……它将与其他数据库(如Mysql和sqlite)一起工作,没有问题。。。 问题是您的postgreSQL crud基础还不清楚

对于Mysql:它将为一个author和author\u id列获取任意一行,为其他两列(id和title)从与author匹配的行中获取任意随机值

但对于postgreSQL而言,情况并非如此

postgreSQL统计信息文档,select子句中引用的任何和所有列都必须在group by子句中使用,唯一的例外是,如果在聚合函数(如min、max等)中使用列名,则需要在group by子句中提及该列名


因此,您的错误

您编写的查询没有任何问题……它将与其他数据库(如Mysql和sqlite)一起工作,没有问题。。。 问题是您的postgreSQL crud基础还不清楚

对于Mysql:它将为一个author和author\u id列获取任意一行,为其他两列(id和title)从与author匹配的行中获取任意随机值

但对于postgreSQL而言,情况并非如此

postgreSQL统计信息文档,select子句中引用的任何和所有列都必须在group by子句中使用,唯一的例外是,如果在聚合函数(如min、max等)中使用列名,则需要在group by子句中提及该列名


因此,您的错误

您编写的查询没有任何问题……它将与其他数据库(如Mysql和sqlite)一起工作,没有问题。。。 问题是您的postgreSQL crud基础还不清楚

对于Mysql:它将为一个author和author\u id列获取任意一行,为其他两列(id和title)从与author匹配的行中获取任意随机值

但对于postgreSQL而言,情况并非如此

postgreSQL统计信息文档,select子句中引用的任何和所有列都必须在group by子句中使用,唯一的例外是,如果在聚合函数(如min、max等)中使用列名,则需要在group by子句中提及该列名



因此,您的错误

您实际上要检索什么?同一作者并列的书?不,只有每个作者的最新作品。顺便说一句,这是一个伪代码。它不是伪代码,它是无效的有效代码。尝试直接针对您的数据库(MySQLWorkBench)编写一条SELECT语句,以了解您需要什么样的SQL,然后找出如何使elounting生成该SQL。您使用的是什么数据库?您想要定义什么是“最新”的书的标准是什么?最后一个?约会?你到底想找回什么?同一作者并列的书?不,只有每个作者的最新作品。顺便说一句,这是一个伪代码。它不是伪代码,它是无效的有效代码。尝试直接针对您的数据库(MySQLWorkBench)编写一条SELECT语句,以了解您需要什么样的SQL,然后找出如何使elounting生成该SQL。您使用的是什么数据库?您想要定义什么是“最新”的书的标准是什么?最后一个?约会?你到底想找回什么?同一作者并列的书?不,只有每个作者的最新作品。顺便说一句,这是一个伪代码。它不是伪代码,它是无效的有效代码。尝试直接针对您的数据库(MySQLWorkBench)编写一条SELECT语句,以了解您需要什么样的SQL,然后找出如何使elounting生成该SQL。您使用的是什么数据库?您想要定义什么是“最新”的书的标准是什么?最后一个?约会?你到底想找回什么?同一作者并列的书?不,只有每个作者的最新作品。顺便说一句,这是一个伪代码。它不是伪代码,它是无效的有效代码。试着写一封信