Если версия MySQL позволяет, смотрите аналитические функции.
Если нужно на 5.7, то можно применить следующую магию:
select
case when @userId<>user_id then @q:=1 else @q:=@q+1 end q,
case when @q=1 then @userId:=user_id else @userId end user_id
from (select * users_images order by user_id) t1, (select @userId:=0, @q:=1) t2
where user_id<>@userId or (user_id=@userId and @q<=2)
Здесь мы получаем из таблицы users_images по 3 элемента в каждой группе по user_id. Лимит установлен в самом конце <=2 - означает 3. Выглядит кошмарно, но решая такие задачи переменными mysql часто получается так.