MySQL。如何合并或匹配两个表中的特定行

MySQL. How to combine or match specifics rows from two tables

首先,标题不是很清楚。对于这个例子,我想知道是否有 SQL 代码的解决方案,或者是否必须在另一端使用 C#、Java、PHP 等

原理是这样的:

  1. 有table个输入,像这样:
    ID  Name   Amount
    1   AA     10   
    2   BB     9
    3   CC     8
    4   DD     1
    5   ZZ     2
  1. 并且有一个 table of Outputs:
    ID  Name   Fouls   
    1   BB     4
    2   ZZ     1
  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)