我有以下疑问

select * from (SELECT accident.id,count(*) as cnt from accident left join driver on driver.accident_id = accident.id group by accident.id)alias where cnt = 1

这是我的查询生成器
$accidents = DB::table('accident')
        ->leftjoin('driver','accident.id','driver.accident_id')
        ->select(DB::raw('accident.*,count(*) as jumlah_kendaraan'))->groupBy('accident.id')
        ->where('jumlah_kendaraan', $jumlah_kendaraan);

我试图像上面那样转换它,但我得到一个错误说
SQLSTATE[42703]: Undefined column: 7 ERROR: column "jumlah_kendaraan" does not exist

有人能帮我解决吗?提前谢谢

最佳答案

不能使用where子句筛选聚合函数count()的结果,而应为此目的使用having

->having('jumlah_kendaraan', $jumlah_kendaraan)

或者用你的完整表达
->havingRaw('count(*) = '.$jumlah_kendaraan)

09-25 17:31