Laravel Присоединиться Повторить результат

Я пытался к нам присоединиться () в laravel 5, но у меня есть некоторые проблемы, я надеюсь, вы можете помочь мне,

$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();

он вернул один результат. Привет, верно, но не было всего перевода только один !!

лайк

word    translation
Hello   مرحبا

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();
1

Другие решения

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

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

Привет مرحبا

Привет اهلا وسهلا

Привет مرحبآ

использование 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

По вопросам рекламы [email protected]