laravel join语句包括两行而不是一行

时间:2017-10-17 04:29:48

标签: laravel laravel-5

我的查询选择电影的数据,但我只想在连接语句中有一行我使用跳过和限制但是如果我使用单词" first"查询失败,所以目前我得到重复的数据主要是其中两个是相同的,因为我在连接语句中有两行数据如何让它只选择一行我尝试过使用不同的但是它什么都没做。

查询:

Movie::select(['movies.id', 'images.small as poster', 'title', 'release_date', 
    'movies.created_at', 'movies.updated_at'])->leftJoin('images', function($join) {
        $join->on('images.imageable_id', '=', 'movies.id')
        ->where('images.imageable_type', '=', 'App\Movie')->skip(1)->take(1);
})

2 个答案:

答案 0 :(得分:0)

使用          - > GROUPBY( 'distintColumnName') 选择唯一的行

答案 1 :(得分:0)

嘿@ONYX你有没有想过使用Eloquent关系而不是像那样构建select语句?

如果你在电影模型中设置了正确的关系,那么你可以说->with('poster')

然后你可以在你的电影模型上设置这个功能

public function poster()
{
    return $this->hasMany(Images::class)->first();
}

public function images()
{
    return $this->hasMany(Images::class);
}

public function poster()
{
    return $this->images()->first();
}