joins_abexa

Get Example source ABAP code based on a different SAP table
  


ARTICLE

Joins
The example demonstrates inner and outer joins in the SELECT statement.

ABAP_SOURCE_CODE
ABAP_EXEC

ABAP_DESCRIPTION
Inner and outer joins between two tables DEMO_JOIN1 and DEMO_JOIN2, for which the last column of DEMO_JOIN1 is equated with the first column of DEMO_JOIN2 in the join conditions. The results are as follows: demo1 demo2
----- -----
a1 b1 c1 uu uu e1 f1 g1 h1
a2 b2 c2 uu ww e2 f2 g2 h2
a3 b3 c3 vv xx e3 f3 g3 h3
a4 b4 c4 ww

demo1 INNER JOIN demo2 demo2 INNER JOIN demo1
---------------------- ----------------------
a1 b1 c1 uu uu e1 f1 g1 h1 a1 b1 c1 uu uu e1 f1 g1 h1
a2 b2 c2 uu uu e1 f1 g1 h1 a2 b2 c2 uu uu e1 f1 g1 h1
a4 b4 c4 ww ww e2 f2 g2 h2 a4 b4 c4 ww ww e2 f2 g2 h2

demo1 OUTER JOIN demo2 demo2 OUTER JOIN demo1
---------------------- ----------------------
a1 b1 c1 uu uu e1 f1 g1 h1 a1 b1 c1 uu uu e1 f1 g1 h1
a2 b2 c2 uu uu e1 f1 g1 h1 a2 b2 c2 uu uu e1 f1 g1 h1
a3 b3 c3 vv a4 b4 c4 ww ww e2 f2 g2 h2
a4 b4 c4 ww ww e2 f2 g2 h2 xx e3 f3 g3 h3
Both inner joins between the tables result in the same result set, irrelevant of the order to the left or the right. There are three line combinations for which the join condition is fulfilled.
The result sets of the two outer joins depends on the arrangement of the tables on the left and right side. Apart from the three lines which the inner join already produces, for each extra line on the left-hand side an empty line (with null values) is created on the right-hand side. The fact that the empty line is displayed on the left in the final result is due to the structure of the internal table in the INTO clause, in which the columns of DEMO_JOIN1 are always read in from the left and those of DEMO_JOIN2 are always read in from the right. If the * specification was used in the SELECT clause, and CORRESPONDING FIELDS was not used in the INTO clause, the result would be arranged differently.