Я пытаюсь создать оператор Laravel, который должен возвращать правильные значения для пользователя для количества ответов и количества вопросов, например, так:
$users = User::join('user_answers', 'users.id', '=', 'users_answers.user_id')
->join('user_questions', 'users.id', '=', 'user_questions.user_id')
->select(
'users.id',
'users.username',
DB::raw('COUNT(user_answers.user_id) AS answers'),
DB::raw('COUNT(user_questions.user_id) AS questions')
)
->groupBy('users.id');
ПРИМЕЧАНИЕ. Для него требуется groupByработать, потому что он используется в DataTables, в противном случае он покажет только одну строку.
Когда я попытался:
dd($users->first());
Что я получил, это:
![Example](https://i.stack.imgur.com/taUiQ.png)
Как видите, значения по каким-то причинам одинаковы для вопросов и ответов и неверны.Я предполагаю, что есть какое-то совпадение с объединениями.
Например, если я удаляю одно из объединений и оставляю только один из столбцов, числа отображаются правильно, например:
![Example 2](https://i.stack.imgur.com/CtLkH.png)
Я, честно говоря, совершенно растерялся, был бы признателен за помощь.
Спасибо!