MySQL。如何合并或匹配两个表中的特定行
MySQL. How to combine or match specifics rows from two tables
首先,标题不是很清楚。对于这个例子,我想知道是否有 SQL 代码的解决方案,或者是否必须在另一端使用 C#、Java、PHP 等
原理是这样的:
- 有table个输入,像这样:
ID Name Amount
1 AA 10
2 BB 9
3 CC 8
4 DD 1
5 ZZ 2
- 并且有一个 table of Outputs:
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, i.amount - coalesce(o.fouls, 0)
from inputs i left join
outputs o
using (id)
首先,标题不是很清楚。对于这个例子,我想知道是否有 SQL 代码的解决方案,或者是否必须在另一端使用 C#、Java、PHP 等
原理是这样的:
- 有table个输入,像这样:
ID Name Amount
1 AA 10
2 BB 9
3 CC 8
4 DD 1
5 ZZ 2
- 并且有一个 table of Outputs:
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, i.amount - coalesce(o.fouls, 0)
from inputs i left join
outputs o
using (id)