Php “Laravel查询生成器”;其中;
我有以下疑问Php “Laravel查询生成器”;其中;,php,postgresql,laravel-5,Php,Postgresql,Laravel 5,我有以下疑问 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','acciden
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)
where子句
不能直接使用组函数的别名,请使用
->where('count(*)', $jumlah_kendaraan);
您也可以使用
having
,但如果having
不起作用,请使用上面给出的用法。我将where替换为having,但仍然会出现相同的错误sir@PinballWizard我又加了一个条款,你确定你有相同的错误还是不同的错误?