我是数据库新手。我知道一些关系,如:左联接,右联接等
但是我不知道我到底需要什么才能获得期望的输出,所以这是我的两个表:
交易表
transaction_id | date | amount | user_id
---------------+------------+--------+----------
1 | 2018-08-18 | 100 | 1
2 | 2018-08-18 | 100 | 1
3 | 2018-08-19 | 100 | 2
用户表
user_id | name | email | password
--------+-------+-----------------+-----------
1 | alice | [email protected] | xxx
2 | smith | [email protected] | xxx
因此,事务表存储有关用户执行的事务的信息。
我想这样输出:
date | SUM(amount) | user_id
-----------+-------------+---------
2018-08-18 | 200 | 1
2018-08-18 | 0 | 2
2018-08-19 | 0 | 1
2018-08-19 | 100 | 2
这是我尝试过的查询:
select
transaction.date,
sum(transaction.amount),
user.user_id
from
transaction
left join
user on user.user_id = transaction.user_id
group by
date, user.user_id
提前致谢
最佳答案
SELECT date,
(
SELECT COALESCE(SUM(transaction.amount), 0)
FROM transaction
WHERE
transaction.user_id = user_ids.user_id
AND
OuterTable.date = transaction.date
) as amount,
user_ids.user_id
FROM transaction OuterTable,
(SELECT user_id FROM user) user_ids
GROUP By date, user_ids.user_id
您可以在此处检查它:http://sqlfiddle.com/#!9/29ee67/9
关于mysql - 加入两个表的MySQL,但我不知道什么类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51912575/