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

问题描述

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

原理是这样的:

  1. 有一个 输入 表,如下所示:
    ID  Name   Amount
    1   AA     10   
    2   BB     9
    3   CC     8
    4   DD     1
    5   ZZ     2
  1. 并且有一个 输出 表:
    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,0)
from inputs i left join
     outputs o
     using (id)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...