INNER JOIN 解疑

起因:
在数据库中有两张表:
LFA1:供应商主数据 (一般地区) 数据量:1090
LFB1:供应商主数据 (公司代码) 数据量:1162
现在要查找供应商信息,两个表做表连接,查找供应商的相关信息,SQL语句如下:

[code="java"]SELECT B.LIFNR,B.BUKRS
  FROM [Test].[dbo].[LFA1] AS A
INNER JOIN [Test].[dbo].[LFB1] AS B
ON A.LIFNR = B.LIFNR

查找出来的结果如下:

 

按照inner join 的功能来说查找出来的数据应该小于两表中数据链较小的那张,但是现在数据与多的那张表相同。

原因:经过排查,发现原因主要在与LFB1虽然有1162条数据但是其中LIFNR有重复,就是一个供应商对对多家公司供应,所以应该是LIFNR的联合主键,但是我们做表连接设定的条件是依据LIFNR,LFB1的数据每一条在LFA1中都能找到对应,所以查找出来的结果集就是1162条数据。

 

发现这个问题是在ABAP系统中,在表的界面查找导入LIFNR,查出来1079条数据,但是XML返回1162条,应该是SAP的表界面查找默认是去重复项的。

表界面查找对LIKE关键字的处理方法:选择“=”value*

界面查找两个字段的值是AND关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值