2014-11-14 119 views
1

我一直在嘗試幾個小時來使這個小查詢工作,但我似乎無法使它的工作。 基本上我試圖從查詢的結果做一個foreach。mysql查詢laravel查詢

這是我想在原MYSQL查詢:

SELECT id FROM albums WHERE id IN (SELECT album_id FROM user_albums WHERE user_id =".Auth::user()->id 

我試過如下:

$myAlbums = Album::whereIn('id', DB::table('user_albums')->where('user_id', Auth::user()->id)->select('album_id')->get()); 

但好像在其中犯規正確地採取從選擇的陣列,它什麼都不給回。

回答

0

查詢生成器不支持子查詢。

將其分解爲兩個查詢。像這樣的東西。 (未經測試)

$albums = DB::table('user_albums')->where('user_id', Auth::user()->id)->get(); 

// collect the album ids 
$albumIds = array(); 
foreach ($albums as $a) { 
    albumIds[] = $a->album_id; 
} 

$myAlbums = Album::whereIn('id', $albumIds)->get();