问题描述
首先,标题不是很清楚。通过这个示例,我想知道是否有SQL代码解决方案,或者是否必须在另一端使用C#,Java,PHP等。
原理是这样的:
- 有一个 输入 表,如下所示:
ID Name Amount
1 AA 10
2 BB 9
3 CC 8
4 DD 1
5 ZZ 2
- 并且有一个 输出 表:
ID Name Fouls
1 BB 4
2 ZZ 1
- 我要获取的是根据每个匹配的列减去数量,以期获得以下信息:
Name Diff
AA 10
BB 5
CC 8
DD 1
ZZ 1
可以直接用SQL完成吗?
解决方法
您可以left join
:
select i.name,i.amount - coalesce(o.fouls,0) diff
from inputs i
left join outputs o on o.name = i.name
,
我认为您只想使用left join
和算术:
select i.id,i.name,0)
from inputs i left join
outputs o
using (id)