我有以下疑问
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)