我有3个表格(预算,交易和类别)。
可以将交易分类为category_id(链接到存储category_name的类别表)。
我要选择某个月的交易,因此我需要将交易表中的category_id与categorys表中的category_id结合起来,以获得交易的类别名称。
问题在于,有些月份没有特定类别的支出,因此当我加入时-只是没有选择这些交易,但如果类别不是,我仍然希望将其显示为0出现在该月的所有交易中(因为该交易需要以该月支出的0英镑预算显示在用户界面上)。
我尝试在交易中使用外部,左,外部左联接>预算联接,但是如果category_id不存在,我仍然无法选择交易。
select budget_id, category_name, total, sum(amount) as spent, total - sum(amount) as available, period
from budgets
inner join categories on budgets.category_id = categories.category_id
inner join transactions on budgets.category_id = transactions.category_id
where month(date) = month("2019-01-15") and budgets.account_id = 5
group by budget_id
答案 0 :(得分:0)
这将起作用:
select budget_id, category_name, total, sum(amount) as spent, total - sum(amount) as available, period,transactions.*
from budgets
left join categories on budgets.category_id = categories.category_id
left join transactions on transactions.category_id = budgets.category_id
group by budget_id