从多个表中选择进入一个内部表

Luc*_*cky 2 abap select

我的数据库表:

db_1
db_2
db_3
Run Code Online (Sandbox Code Playgroud)

我的内部表:

it_comb
Run Code Online (Sandbox Code Playgroud)

it_comb具有包含db_1,db_2,db_3中的某些字段的结构。

所有的数据库表都有不同的结构。

我想选择所有从db_1,db_2,db_3到带where条件的it_comb正确字段中。

我想做这样的事情:(这不起作用)

SELECT * From db_1, db_2, db_3 into CORRESPONDING FIELDS OF TABLE it_comb WHERE db_1-MATNR LIKE db_2-MATNR AND db_1-MATNR LIKE db_3-MATNR.
Run Code Online (Sandbox Code Playgroud)

显然,这是行不通的,因为我不能那样使用','。我该如何在ABAP中写这个?这样,it_comb就会填充db_1,db_2和db_3中的数据。

另一个问题是,每次我在it_comb中选择内容时,以前的数据都会被覆盖。

对于ABAP-Beginner,将感谢该代码示例。

div*_*orp 5

您可以使用内部联接-

SELECT * APPENDING CORRESPONDING FIELDS OF TABLE it_comb
FROM db_1 AS a
INNER JOIN db_2 AS b
ON a~matnr = b~matnr
INNER JOIN db_3 AS c
ON a~matnr = c~matnr
WHERE (Your any other condition).
Run Code Online (Sandbox Code Playgroud)

APPENDING 不会覆盖内部表中的先前记录 it_comb

警告:APPENDING如果内部表不在此位置上,TYPE STANDARD则使用它将导致转储。还要检查SELECT-JOIN文档