2014-11-14 3 views
1

이 작은 쿼리 작업을 수행하는 데 몇 시간 씩 노력해 왔지만 제대로 작동하지 않는 것 같습니다. 기본적으로 쿼리 결과에서 foreach를 수행하려고합니다. laravel 쿼리에 대한 mysql 쿼리

내가 원시 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();