我正在使用laravel分页列表。有两个表可以说table1
& table2
。
table2
id
是主键&在table1
t2_id
我希望获得所有唯一t2_id
但需要检查is_deleted是否未在table2中为该id设置。
我在我的模型中编写了函数:
public function getDistinctIds() {
return DB::connection('pgsql')
->table('table1 AS t1')
->distinct()
->select('t1.t2_id')
->join('table2 AS t2', 't2.id', '=', 't1.t2_id')
->where('t2.is_deleted', '!=', 1)
->orWhereNull('t2.is_deleted')
->paginate(3);
}
这个功能会给我准确的结果。但是分页存在问题。 table1
getDistinctIds()
中有12条记录只有4条记录,所以应该有两页,但它显示4页。我认为分页不考虑条件。
请提前帮助谢谢!!
答案 0 :(得分:0)
我得到了解决方案而不是distinct()
使用groupBy()
。现在工作正常。 :)
从laracast帖子引用:[L4.2] distinct() and pagination returns total number of results not distinct total