首页 > 解决方案 > 用 JOIN 合并三个表

问题描述

我面临三个表的问题:
第一个表的数据如下:

A B C D  
1 2 3 4  
1 2 3 5  

第二个表的数据如下:

D E  
4 x  
6 y

第三个表的数据如下:

E F  
x result1
y result2

我需要的是一个查询,它显示第一个表中的所有值(显然是左外连接),如果可用,则显示第二个和第三个表的组合。

所以结果看起来有点像这样:

A B C D E F  
1 2 3 4 x result 1  
1 2 3 5

但是我无法得到解决方案。

我已经尝试了两次左加入(导致错误,因为它在 opensql 中是不允许的)和内部加入第二个和第三个表并尝试右加入第一个表(在 opensql 中也不允许)。

我如何实现我想要的结果表?

标签: abapopensql

解决方案


SELECT *
  FROM first
  LEFT OUTER JOIN second
    ON second~d = first~d
  LEFT OUTER JOIN third
    ON third~e = second~e
  INTO TABLE @DATA(lt_result).

当然你可以LEFT OUTER JOIN在 OpenSQL 中做多个 s。

第二个连接也可能是INNER JOIN,具体取决于您想要什么。

在 SAP HANA 2.0 上的 SAP NetWeaver 7.52 上验证。


推荐阅读