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。您使用的是什么数据库?您想要定义什么是“最新”的书的标准是什么?最后一个?约会?你到底想找回什么?同一作者并列的书?不,只有每个作者的最新作品。顺便说一句,这是一个伪代码。它不是伪代码,它是无效的有效代码。试着写一封信