2016-06-10 4 views
0

У меня есть текущие настройки базы данных следующим образом: enter image description hereLaravel Как сделать эти отношения запрос

У меня есть модель подпозиция пользовательская модель/модель голосование/группа модель/голосов. Между пользователем и голосованием существует много-много отношений, а также множество отношений между пользователем и подтипом.

Я хочу, чтобы получить Л.Л. голосов с отметкой времени создана в чем-то, что принадлежит к набору группы идентификаторов, где конкретный пользователь не имеет запись в таблице user_vote_casts.

Как это сделать в laravel?

В MySQL, это то, что я считаю правильным:

SELECT * from vote left join user_vote_casts on vote.id = user_vote_casts.vote_id where user_vote_casts.user_id IS NULL AND vote.id IN (12,3142,512,51,12,1) ; 
+0

Какой код у вас есть? – TheFallen

+0

Просмотреть править пожалуйста –

+0

А как насчет PHP? – TheFallen

ответ

3

Laravel запросов в соответствии с вашим SQL запроса:

$users = DB::table('vote') 
      ->leftJoin('user_vote_casts', 'vote.id', '=', 'user_vote_casts.vote_id') 
      ->select('vote.*') 
      ->where('user_vote_casts.user_id','') 
      ->whereIN('vote.id',[12,3142,512,51,12,1]) 
      ->get(); 
0

То, что я, наконец, в конечном итоге делает это:

$vote = Vote::leftJoin('user_vote_casts', function ($join) { 
       $join->on('vote.id', '=', 'user_vote_casts.vote_id'); 
      })->whereNull('user_vote_casts.user_id') 
->orderBy('vote.updated_at', 'DESC') 
->take(30)->get(); 
Смежные вопросы