#php #mysql #select #sum #group-concat
#php #mysql #выберите #сумма #group-concat
Вопрос:
У меня есть две таблицы. Таблица «user» содержит user_id, имя_пользователя Таблица «Transactions» содержит user_id, транзакции
Например:
TABLE USER:
user_id, user_name
1, Ram
2, John
3, Rahim
TABLE Transactions
user_id, transactions
1, 500
1, 300
2, 250
1, 450
3, 100
1, 250
3, 50
Я хочу отобразить результат как:
user_name, Total
Ram, 1500*
John, 250
Rahim, 150
- это сумма всех транзакций этого конкретного пользователя
Как я могу это сделать?
Комментарии:
1. В моем вопросе ошибка. Мой результат должен быть: user_id, всего. (Не имя_пользователя, всего) Извините, что смутил вас.
2. Сообщение отредактировано. В любом случае, я думаю, вы получили правильный ответ.
3. Еще раз извините. Прежде чем переписать свой комментарий, я просто нажал клавишу «enter». Мне нужно имя_пользователя, всего (например: Ram, 1500). Пожалуйста, проигнорируйте мой последний комментарий. Еще раз извините за мои ошибки
4. Ну, так что ответ genesis правильный.
5. Большое спасибо! stackoverflow.com СКАЛЫ
Ответ №1:
SELECT
u.user_name,
SUM(t.transactions) Total
FROM users u
LEFT JOIN transactions t ON t.user_id = u.user_id
GROUP BY t.user_id
Я думаю, вам следует использовать LEFT JOIN, потому что в любом случае он должен выбрать общее значение пользователя (NULL), даже если оно равно 0
Комментарии:
1. Зачем нужно объединение, если все данные, которые нужны пользователю, находятся в одной таблице?
2. Кажется, что, но, как вы можете видеть, в его примере он ввел идентификатор пользователя, а не имя_пользователя. Я тоже в замешательстве.
3. @Aur да, ваш ответ хорош, если он хочет user_id. Мы увидим
4. Спасибо. Я спросил, потому что ваш ответ хорош, и это была моя первая мысль, прежде чем я понял пример.
5. Я знаю, как отображать поля из одной таблицы. Но я неправильно написал свой вопрос. Мне нужно имя_пользователя, всего (например: Ram, 1500).
Ответ №2:
SELECT u.user_id , SUM(t.transactions) AS total
FROM user AS u JOIN transactions AS t
GROUP BY u.user_id
Ответ №3:
Попробуй
SELECT
u.user_id,
sum(t.transactions) as total
FROM
user u
JOIN transactions t ON u.user_id = t.user_id
GROUP BY
u.user_id