2017-10-17 80 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(); 
}