Я пытаюсь создать базу данных для угадайки, где игрок должен угадать ценность того или иного продукта. У меня три стола;
Одна таблица для продуктов со следующими столбцами:
- ProductID
- ProductName (VarChar)
Один стол для игроков со следующими столбцами
- PlayerID
- PlayerName (VarChar)
Один стол, где хранятся игроки, продукты и их догадки, т.е.
- GuessID
- PlayerID
- ProductID
- Угадай (Int)
Я пытаюсь найти способ объединить, какой игрок (PlayerName), который сделал наибольшее предположение (Угадай) для КАЖДОГО продукта (ProductName), то есть способ суммировать каждый отдельный продукт, наибольшее предположение для каждого продукта и имя оч игрока, который сделал предположение.
Пока мне удалось получить только правильное ProductName и правильное значение Guess для каждого продукта. Как-то это не работает для PlayerName, и я каждый раз получаю неправильное имя.
SELECT pl.PlayerName, MAX(g.Guess), p.ProductName
FROM
guess g
INNER JOIN player pl on g.PlayerID = pl.PlayerID
INNER JOIN product p on g.ProductID = p.ProductID
GROUP BY g.ProductID;
Полагаю, моя проблема в том, что каждая строка, связанная с конкретным продуктом, содержит два динамических значения; Угадай и PlayerID, который доставляет мне проблемы всякий раз, когда я пытаюсь сортировать по Максу (Угадай). Я не могу понять, какой PlayerID выбран для запроса, указанного выше. Это не имеет никакого смысла для меня.
Буду признателен, если кто-нибудь из вас, ребята, укажет мне правильное направление.
Приветствия.