У меня есть 2 таблицы, одна с пользователями и другая с транзакциями. Я пытаюсь отобразить всех пользователей с суммой их транзакций.
Выражение ниже показывается правильно, за исключением того, что оно будет включать только пользователей, у которых есть транзакции. Как я могу перечислить всех пользователей, и если нет транзакции, она должна отображать сумму как 0?
Вот заявление, которое я использую:
SELECT
user.ID, user.FirstName, user.LastName,
user.Username,
SUM(transaction.Amount) As Total
FROM user
LEFT JOIN transaction
ON user.ID = transaction.runnerID
WHERE user.event = 'EventX'
AND user.Active = 'True'
AND (user.tran_result = '1' OR user.tran_result ='manual' )
AND transaction.event = 'EventX'
AND (transaction.tran_result = '1' OR transaction.tran_result ='manual' )
GROUP BY user.ID
ORDER BY user.LastName ASC
Я предполагаю, что это оператор WHERE, который удаляет эти строки, но если я удаляю оператор WHERE и помещаю эти детали как часть LEFT JOIN, он, кажется, просто зависает, пытаясь получить результаты. (Есть около 2000 пользователей и 40 000 транзакций)
Спасибо!