我正在用 laravel 5.7 编写查询,给出以下错误
SQLSTATE[42000]:语法错误或访问冲突:1055 "demoecommerce.orders.id"不在分组依据 (SQL: 选择table_users
.name
,orders
.*,orders_details
.orders_id
从orders_details
内部连接orders
orders
。id
=orders_details
.orders_id
内部连接products
orders_details
。product_id
=products
.product_id
内部连接table_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 的列,否则你必须在列上有一些聚合(总和、计数、平均值......
您可以添加更多详细信息,例如您需要从此查询中获取的内容、订单计数?或每个用户的订单详细信息。
此外,您可以尝试在集合上查看 Groupby。拉拉维尔文档 组按收集
步骤 1. 转到 config 文件夹并打开数据库文件并更改...'strict' => true',改为false.
step 2。转到"提供程序"文件夹并打开Appserviceprovoder文件并执行此操作
一个。use IlluminateSupportFacadesDB;
B.函数内部public function boot(): void
写在行下面
DB::statement("SET SQL_MODE= ''");