Mysql 在两个参数之间搜索自定义查询

Mysql 在两个参数之间搜索自定义查询,mysql,laravel,Mysql,Laravel,当我在两个参数(date\u min和date\u max)之间进行搜索时,我想运行的查询有问题 在我的控制器中,我使用一个过滤器在不同的参数中进行搜索,并添加了一个orWhere条件来选择两个日期之间的结果,但查询结果非常奇怪: 完整性约束冲突:其中1052列“created_at” 这个条款模棱两可 连接->runQueryCallback('select count(*)作为来自 补偿左连接结构在结构上= 赔偿俱乐部id其中俱乐部id=?或 赔偿在和之间创建的和在创建的或 赔偿在和之间创建

当我在两个参数(date\u min和date\u max)之间进行搜索时,我想运行的查询有问题

在我的控制器中,我使用一个过滤器在不同的参数中进行搜索,并添加了一个orWhere条件来选择两个日期之间的结果,但查询结果非常奇怪:

完整性约束冲突:其中1052列“created_at” 这个条款模棱两可

连接->runQueryCallback('select count(*)作为来自
补偿
左连接
结构
结构
上=
赔偿
俱乐部id其中
俱乐部id
=?或
赔偿在
和之间创建的和在创建的或
赔偿在
和之间创建的和在创建的或
赔偿
在和之间创建的和总计!=?分组
club_id
',数组('6','2018-03-12','2018-03-31','12-03-2018', '2018-03-12', '2018-03-31', '31-03-2018', '2018-03-12', '2018-03-31', 0),对象(闭包)

这是我的控制器:

公共功能索引(请求$Request){

我哪里做错了?希望有人能帮我

问题似乎来自生成结果的最后一个查询

当我改为$moncletes=$query->paginate(20)时,它可以工作,但我需要在原始数据中进行计算。希望有人能帮助我

已解决(我在列名上出错)


具有关系的表都在列中创建了

    foreach ($filters as $key => $column) {


        $query->when($request->has($key), function ($query) use ($column,$key, $request , $dt_min , $dt_max)  {
            $query->where($column, $request->$key)
                ->orWhereBetween('tableName.created_at' , [$dt_min , $dt_max]);

        });
    }
可能是这样

 ->orWhereBetween('structures.created_at' , [$dt_min , $dt_max]);

希望这有帮助

谢谢你的回复,我尝试过了,但没有成功,问题来自上一次使用selectRaw的查询,因为当我使用$monclates=$query->paginate(10)更改查询时;它正在工作。问题是我需要在原始数据中求和。@MathieumourArea你的数据库中有total列吗?是的,我有!我得到了很好的结果,没有日期_min&日期_max,我也不例外。我在代码控制器上犯了一个错误,我刚刚更新了。创建的_at列与“renContract”相关table.抱歉!我解决了筛选器数组中的问题。我的列名出错。我将您的答案标记为已解决。非常感谢您的帮助
    foreach ($filters as $key => $column) {


        $query->when($request->has($key), function ($query) use ($column,$key, $request , $dt_min , $dt_max)  {
            $query->where($column, $request->$key)
                ->orWhereBetween('tableName.created_at' , [$dt_min , $dt_max]);

        });
    }
 ->orWhereBetween('structures.created_at' , [$dt_min , $dt_max]);