Mysql Рейтинг пользователей, объединение таблиц

cleverok

Новичок
Добрый день, ни как не могу составить запрос на выборку данных, помогите пожалуйста, поиском пользовался, но что то слепить запрос не могу, знаний не хватает, а очень надо.

1. Есть таблица (table1) с достижениями человека, где он раз в месяц сдает норматив и результат - количество баллов заносится в таблицу.

Id | idUser | points | date
—————————————————
1 | 1 | 159.67 | 2019-09-06
2 | 1 | 327.00 | 2019-10-12
3 | 2 | 190.03 | 2019-09-12
4 | 2 | 229.33 | 2019-10-12
5 | 3 | 255.33 | 2019-09-02
6 | 3 | 215.33 | 2019-10-02

2. B есть таблица (table2) с именами пользователей

Id | name
———————
1 | Иванов
2 | Петров
3 | Сидоров

Делаю таблицу рейтинга

Необходимо вывести наилучший результат пользователя:

Делаю так SELECT idUser, MAX(points) AS maxPoints FROM table1 GROUP BY idUser

Запрос выбирает максимальный результат у пользователя и выводит его. Не выходит объединить его со второй таблицей что бы table1.idUser был равен table2.id

Пока делаю через костыль, первый запрос а потом в цикле по idUser вытягиваю данные из БД

Хочу все это объединить в один запрос. Заранее благодарен за помощь.
 

cleverok

Новичок
Целое утро просидел за чтением мануала. Отчаялся, с Вашей подачи решил попробовать крайний раз.

Код:
SELECT t1.idUser, t2.lastName, MAX(t1.points) AS maxPoints FROM table1 AS t1 JOIN table2 AS t2 ON t1.idUser = t2.idUser GROUP BY t1.idUser, t2.name
Моя ошибка была то что группировал только по одному полю в table1, думал этого будет достаточно. Но не работало, подставил группировку по имени в table2 и вуаля!

Спасибо! Я счастлив =))
 
Сверху