Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Составить запрос MySql

Aleksandr Boronaev Ученик (35), закрыт 4 года назад
Таблица CREATE TABLE users (name TEXT),
Таблица CREATE TABLE scores(user_name TEXT, score INT)

В таблице scores сохраняются ссылки на пользователей (name = user_name) и их результат.
Нужно получить таблицу пользователей с суммой их результатов для каждого пользователя.

Например:
INSERT INTO users VALUES ('Dan',)
INSERT INTO users VALUES ('Andrew');

INSERT INTO scores VALUES ('Dan', 10)
INSERT INTO scores VALUES ('Dan', 5)
INSERT INTO scores VALUES ('Andrew', 20)
INSERT INTO scores VALUES ('Andrew', 20)
INSERT INTO scores VALUES ('Andrew', 20)

Выходная таблица:
| user | total_score|
|Dan | 15 |
|Andew | 60 |
Лучший ответ
Nikolay Shepelev Мыслитель (6191) 4 года назад
Как-то так - https://sqltest.net/#664192:
SELECT users.name as user_name, SUM(scores.score) as total_score
FROM users, scores
WHERE users.name = scores.user_name
GROUP BY users.name
ORDER BY total_score;
}|{ек@Профи (837) 4 года назад
первую табличку вообще не надо трогать раз он пишет имена сразу во вторую (что IMHO неправильно)
Nikolay Shepelev Мыслитель (6191) Ну ему, видимо, по заданию связать надо таблички запросом. А если для себя делает, то да, неправильно
Остальные ответы
Похожие вопросы