2015-10-03 4 views
1

Я пытался нам Join() в Laravel 5, но у меня есть некоторые проблемы, я надеюсь, что вы можете помочь мне,Laravel Регистрация Повторить результат

$results = DB::table('words') 
      ->join('users_words_relationship','users_words_relationship.word_id','=','words.id') 
      ->where('users_words_relationship.user_id','=',Auth::user()->id) 
      ->join('translate','translate.word_id','=','words.id') 
      ->select('words.word','translate.translate') 
      ->get(); 

этот запрос сделал обратный результат повтора, как этот

word translation 
Hello مرحبا 
Hello اهلا وسهلا 
Hello مرحبآ 
Hello اهلا و سهلا 

, и я пытался добавить GroupBy(), как этот

$results = DB::table('words') 
      ->join('users_words_relationship','users_words_relationship.word_id','=','words.id') 
      ->where('users_words_relationship.user_id','=',Auth::user()->id) 
      ->join('translate','translate.word_id','=','words.id') 
      ->groupBy('translate.word_id') 
      ->select('words.word','translate.translate') 
      ->get(); 

она возвращает один результат Здравствуйте право, но не имею весь перевод J ust один !!

как

word translation 
Hello مرحبا 
+0

Что вы пытаетесь сделать? Кажется, есть несколько переводов 'Hello'. Кого вы пытаетесь найти? Группировка результатов даст только один перевод. – Hidde

+0

Я пытаюсь получить весь перевод слова «hello», как этот результат '[word = Hello, translat = مرحبا, اهلا وسهلا, مرحبآ]' –

ответ

0

Если вы ищете следующий вывод

перевод слова

Здравствуйте مرحبا

Здравствуйте اهلا وسهلا

Здравствуйте مرحبآ

Использование distinct('translate.translate')

Вот запрос

$results = DB::table('words') 
       ->join('users_words_relationship','users_words_relationship.word_id','=','words.id') 
       ->where('users_words_relationship.user_id','=',Auth::user()->id) 
       ->join('translate','translate.word_id','=','words.id') 
       ->select('words.word','translate.translate') 
       ->distinct('translate.translate') 
       ->get(); 
+0

спасибо за вашу помощь, но я ищу этот результат ' [word = Hello, translat = مرحبا, اهلا وسهلا, مرحبآ] ' –

1

Вы ищете группы конкатенации.

В Laravel Ваш запрос будет

DB::table('words') 
    -> join('users_words_relationship','users_words_relationship.word_id','=','words.id') 
    -> where('users_words_relationship.user_id','=',Auth::user()->id) 
    -> join('translate','translate.word_id','=','words.id') 
    -> select('words.word', DB::raw('GROUP_CONCAT(DISTINCT translate.translate) as translations')) 
    -> group_by('words.word') 
    -> get(); 
+0

спасибо, это отлично работает –

+1

, если ответ решает вашу проблему, пожалуйста, примите его. Другие люди с одинаковой проблемой смогут быстрее найти решение. – Hidde