Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP SQL: How to select all fields of one table in a join select?

tongping
Explorer
0 Kudos

In standard SQL:

SELECT <b>a.*</b> FROM table_a as a JOIN table_b as b ON ....

In ABAP Open SQL, I'd like do the similar thing:

SELECT <b>a~*</b> FROM table_a as a JOIN table_b as b ON ....

While a~* is not valid statement. how could i do this? except for list all table_a's fields?

thanks

Said

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

PARAMETERS: p_cityfr TYPE spfli-cityfrom,

p_cityto TYPE spfli-cityto.

DATA: BEGIN OF wa,

fldate TYPE sflight-fldate,

carrname TYPE scarr-carrname,

connid TYPE spfli-connid,

END OF wa.

DATA itab LIKE SORTED TABLE OF wa

WITH UNIQUE KEY fldate carrname connid.

SELECT ccarrname pconnid f~fldate

INTO CORRESPONDING FIELDS OF TABLE itab

FROM ( ( scarr AS c

JOIN spfli AS p ON pcarrid = ccarrid

AND p~cityfrom = p_cityfr

AND p~cityto = p_cityto )

JOIN sflight AS f ON fcarrid = pcarrid

AND fconnid = pconnid ).

LOOP AT itab INTO wa.

WRITE: / wa-fldate, wa-carrname, wa-connid.

ENDLOOP.

i hope this will helpful for u

Reward points if its useful

4 REPLIES 4

Former Member
0 Kudos

Hi,

PARAMETERS: p_cityfr TYPE spfli-cityfrom,

p_cityto TYPE spfli-cityto.

DATA: BEGIN OF wa,

fldate TYPE sflight-fldate,

carrname TYPE scarr-carrname,

connid TYPE spfli-connid,

END OF wa.

DATA itab LIKE SORTED TABLE OF wa

WITH UNIQUE KEY fldate carrname connid.

SELECT ccarrname pconnid f~fldate

INTO CORRESPONDING FIELDS OF TABLE itab

FROM ( ( scarr AS c

JOIN spfli AS p ON pcarrid = ccarrid

AND p~cityfrom = p_cityfr

AND p~cityto = p_cityto )

JOIN sflight AS f ON fcarrid = pcarrid

AND fconnid = pconnid ).

LOOP AT itab INTO wa.

WRITE: / wa-fldate, wa-carrname, wa-connid.

ENDLOOP.

i hope this will helpful for u

Reward points if its useful

Former Member
0 Kudos

There is not recommendet to do that in Abap SQL due to performance.

Br, Jacek

Former Member
0 Kudos

Of course it's possible:

select *

from tbl_1 as a join tbl_2 as b

where a~fld1 = ...........................

That's it.

example:

SELECT *

FROM KNA1

JOIN KNVV ON KNA1KUNNR = KNVVKUNNR

INTO CORRESPONDING FIELDS OF TABLE LT_CUST

WHERE KNA1~KUNNR IN S_KUNNR.

tongping
Explorer
0 Kudos

thank you all.

to manjari kotta: yes, i mean except the way to list each field like afield1 afield2 ...

to Jacek Slowikowski, Rebeka:

yes, select * will return all the fields of all the joined table; while i only want all fields of 1 table. Also, if table_a and table_b has fields with the same name, there will be error with INTO CORRESPONDING FIELDS. That what I need.

It seems no way to do that; i have to specify all the fields one by one i want.

Regards,

Said