当我尝试在laravel 5.8中使用内部连接查询时,返回重复数据。
数据库中有2组8种产品。当我想从数据库中打印组名时,它不需要打印2个组名,而是打印要屏幕的产品数量(8个组名)。
我尝试了Laravel ->distinct()和一些不同的方法,但是不起作用。
这是我的控制器代码:
$user_id = Auth::id();
$captions = DB::table('ab_captions')->where('ab_groups.user_id', $user_id)->where('ab_captions.user_id', $user_id)->join('ab_groups', 'ab_captions.group_id', '=', 'ab_groups.id')->distinct()->get();
if ($captions == !NULL) {
return view('default.captions', ['captions' => $captions]);
} else {
return view('default.captions');
}和刀片代码:
@if(!empty($captions))
@foreach($captions as $showcaptions)
<div class="list-body" style="margin-top: 5px;">
<a href="{{ url('captions/'.$showcaptions->groupname) }}" class="item-title _500">{{ $showcaptions->groupname }}</a>
</div>
@endforeach
@endif输出如下:
组名-1
组名-2
组名-2
组名-2
组名-2
组名-2
组名-2
组名-2
正如我所说,我有两个组名(组名-1和组名-2)
我知道这是一个简单的问题,但我没有能够解决它,即使我已经做了很多研究。非常感谢你的帮助。
发布于 2019-07-13 19:51:29
您需要使用GROUP BY子句,根据group_id或group_name对结果进行分组。
$captions = DB::table('ab_captions')->where('ab_groups.user_id', $user_id)->where('ab_captions.user_id', $user_id)->join('ab_groups', 'ab_captions.group_id', '=', 'ab_groups.id')->groupBy('ab_captions.group_id')->get();https://stackoverflow.com/questions/57022213
复制相似问题