laravel - laravel group by 查询:语法错误或访问冲突:1055
问题描述
我正在 laravel 5.7 中编写查询,它给出以下错误
SQLSTATE [42000]:语法错误或访问冲突:1055 'demoecommerce.orders.id' 不在 GROUP BY 中(SQL:选择table_users
. name
, orders
.*, orders_details
. orders_id
from orders_details
inner join orders
on orders
. id
= orders_details
. orders_id
inner join products
on orders_details
. product_id
= products
. product_id
inner jointable_users
在table_users
. id
= orders
.user_id
分组orders_id
)
在mysql中它运行正确。
$orders = DB::table('orders_details')
->join('orders','orders.id','=','orders_details.orders_id')
->join('products','orders_details.product_id','=','products.product_id')
->join('table_users','table_users.id','=','orders.user_id')
->select('table_users.name','orders.*','orders_details.orders_id')
->groupBy('orders_id')
->get();
解决方案
如果您的 SQL 查询中有 groupBy,则只能选择属于 SQL 中 groupby 的列,否则您必须在列上有一些聚合(sum、count、average..)
您可以添加更多详细信息,关于您需要从此查询中获得什么,订单数?或每个用户的订单详细信息。
此外,您可以尝试查看 GroupBy on collection。Laravel 文档 GroupBy 集合
推荐阅读
- django - Django - 如何从继承相同抽象类的许多模型中创建一个 TableView?
- python - Python exercise remove from list based on another list grade
- javascript - 为什么 Javascript addEventlistener 在另一个 addEventlistener 中不起作用
- javascript - 获取路线是正确的,但 api 仍然无法正常工作(什么都没有)
- c++ - 用 C++ 中的普通元音替换重读元音
- plotly - Plotly:如何在我的桑基图列上写一个文本?
- azure-active-directory - 尝试使用 Graph API 获取用户的频道并将消息从 Web 应用程序发布到 MS Teams 频道
- jsxgraph - Jsxgraph 旋转和 LaTex 文本
- docker - 在构建期间如何从 docker 文件打印到控制台?
- laravel - laravel 将变量从控制器传递给 js 文件