Mysql:左外连接问题

时间:2015-07-08 08:36:46

标签: mysql

我有两张桌子:
收入(月,金额)
支出(月,金额)

我需要每个月显示表收入其金额减去支出金额(如果存在)。
我想我需要在两个表之间使用左外连接,比如

SELECT income.amount - expenditure.amount 
FROM income left outer join expenditure on income.month = expenditure.month

但我不知道该怎么做 http://sqlfiddle.com/#!9/7a7d5/1

如果有人可以帮助解决这个问题 感谢。

3 个答案:

答案 0 :(得分:1)

我认为如果没有收入,那么这应该被视为0,同样也用于支出。

MySQL没有完整的外部联接,但你可以做类似的事情:

SELECT month, SUM(amount) FROM
    (SELECT month, income AS amount
    FROM income
    UNION
    SELECT month, - expenditure AS amount
    FROM expenditure) a
GROUP BY month;

这会创建两个表的并集(为简单起见,支出为负数)。然后简单地按月汇总金额和组。

示例:http://sqlfiddle.com/#!9/7a7d5/14

答案 1 :(得分:0)

试试这个OP:

SELECT [gross] = ISNULL(income.income - expenditure.expenditure ,0)
FROM income 
left outer join expenditure on income.month = expenditure.month

答案 2 :(得分:0)

<强>查询

AppDelegate

Fiddle demo here