2017-10-17 49 views
0

我的查询为电影选择数据,但我只想在连接语句中有一行使用跳过和限制,但如果我使用单词“first”,则查询失败目前我得到重复的数据主要是其中两个是相同的,因为我在我的连接语句中有两行数据我怎么才能得到它只选择一行我尝试使用不同,但它没有做任何事情。laravel join语句包括两行而不是只有一行

查询:

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); 
}) 
+0

班级电影或imageable_type – ONYX

+0

你对所有Hamelraj的言论都毫无意义 – ONYX

回答

0

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

0

嘿你有没有想过用雄辩的关系,而不是像建设的select语句@ONYX ?

,如果你有在你的电影模式的正确关系的设置,那么你可以只说->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(); 
}