Я пытался к нам присоединиться () в 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 مرحبا
Вы ищете групповое объединение.
В 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();
Если вы ищете следующий вывод
перевод слова
Привет مرحبا
Привет اهلا وسهلا
Привет مرحبآ
использование 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();