我是Laravel的新手,对合并2个JOIN结果有疑问。
首先,我有以下表格:
视频:ID,已批准
videos_languages:video_id、language_id、名称
现在我执行以下操作:
$arr = Video::join("videos_languages","video_id","=","videos.id")->whereRaw("approved = 0")->get();
然后我将数组传递给我的视图。
我得到了这些值,但如果一个视频有超过 1 种语言,现在有双倍结果。是否有可能将与Laravel联接的结果合并为一个结果?
例:
$arr[0]['id'] = 5;
$arr[0]['approved'] = 0;
$arr[0]['videos_langauges][0] =
{
'name' = ...
}
$arr[0]['videos_langauges][1] =
{
'name' = ...
}
谢谢:)
$arr = Video::distinct()->join("videos_languages","video_id","=","videos.id")->where("approved", 0)->get();
这应该会清除结果中的重复项。另请注意where()
而不是whereRaw()
。