Как отобразить несколько строк в таблице с одной строкой в ​​другой таблице как одну строку - PullRequest
1 голос
/ 24 октября 2011

У меня есть две таблицы.Таблица "user" содержит идентификатор_пользователя, имя_пользователя Таблица "Транзакции" содержит идентификатор_пользователя, транзакции

Например:

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
  • это сумма всех транзакций данного конкретного пользователя

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 24 октября 2011
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 голос
/ 24 октября 2011

Попробуйте

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
1 голос
/ 24 октября 2011
SELECT u.user_id , SUM(t.transactions) AS total
FROM user AS u JOIN transactions AS t
GROUP BY u.user_id
...