Добрый день! Помогите, пожалуйста с помощью DB составить такой запрос (я пытался правильно всё заджойнить но не получается):
2 таблицы:
inviteds - таблица реферальной системы (user_id - приглашенный, referer - приглашающий)
users - очевидно
Сама задача такова: надо посчитать количество приглашений рефералов по убыванию (например testuser пригласил 120 рефералов, а testuser2 пригласил 50 рефералов) но и у inviteds.user_id должен быть user.active = 1.
Active = 1 значит что пользователь подтвердил почту, то есть и у приглашенного и приглашающего должно быть users.active=1.
Можно ли это составить запросом, у меня не получилось, старался - честно.
$invited = DB::table('inviteds')
->select(DB::raw('count(*) as count, referer'))
->join('users AS refererJoin', 'inviteds.referer', '=', 'refererJoin.id')
->join('users AS userJoin', 'inviteds.user_id', '=', 'userJoin.id')
->where('inviteds.created_at', '>', $comp->start)
->where('inviteds.created_at', '<', $comp->end)
->groupBy('referer')
->orderBy('count', 'desc')
->get();
Но если добавить: ->where('userJoin.banned', '=', 0)
То выводит сразу ноль строк, а этот запрос нужен для того чтобы проверить что пользователь не забанен, что не так?