SQLSTATE [23000]:违反完整性约束:1052 order子句中的列“ created_at”不明确,Laravel 5.5

jec*_*360 2 php mysql laravel laravel-5.5

我只是不知道我的代码出了什么问题以及为什么它会产生此错误

SQLSTATE [23000]:完整性约束违规:1052列'created_at'为了子句是不明确的(SQL:从选择* processes内部联接bagsprocessesbag_id= bagsid其中bagstype=可回收和日期(processescreated_at)= 2018年9月18日00:00: 00按created_atdesc限制1 排序),这是我的代码

$bag = Bagcollect::join('bags', 'bagcollects.bag_id', '=', 'bags.id')
        ->select('bags.type')
        ->where('bagcollects.bag_id', $request->input('bag_id'))
        ->first();

   //this query produce error
    $processexist = Process::join('bags', 'processes.bag_id', '=', 'bags.id')
        ->where('bags.type', $bag->type)
        ->whereDate('processes.created_at', Carbon::today())
        ->latest()
        ->first();
Run Code Online (Sandbox Code Playgroud)

小智 6

那是因为您正在从两个表查询“created_at”列。您必须指定所需的列,例如:

$processexist = Process::join('bags', 'processes.bag_id', '=', 'bags.id')
        ->select('bags.column1', 'bags.columns2')
        ->where('bags.type', $bag->type)
        ->whereDate('processes.created_at', Carbon::today())
        ->latest()
        ->first();
Run Code Online (Sandbox Code Playgroud)


Dar*_*rke 5

您需要在latest()完整列中指定。latest('process.created_at')或者代替latest()使用自定义orderBy。