Select table A 中的所有字段但 B 中的单个字段?
Select all fields from table A but single field from B?
当我想获取一个 table 的所有字段但只获取 select 时,ABAP 的 OpenSQL 中是否有一种方法可以简化 JOIN
中的 select 列从其他 table(s)?
编辑字段
例如,在mysql we can simply do:
SELECT tb1.*, tb2.b, tb2.d
FROM tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a
但是,OpenSQL 似乎不允许 selecting tb1~*, tb2~b, tb2~d
所以我不得不求助于此:
SELECT tb1.x, tb1.y, tb1.z, tb2.b, tb2.d
FROM tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a
对于非常大的 tables,尤其是标准的 tables,这变得笨拙、难以阅读并且更令人讨厌维护。
有没有更好的方法select tb1的所有字段和tb2的部分字段?
是的,这在 7.40 SP08 的 OpenSQL 中是可能的。看到这个 article.
文章中的引文有。
列规范
In the SELECT list, you can specify all columns of a data source using the syntax data_source~* from 7.40, SP08 on. This can be handy when working with joins.
SELECT scarr~carrname, spfli~*, scarr~url
FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
INTO TABLE @DATA(result).
不幸的是,在以前的版本中,必须一一指定列或使用数据库本机 SQL 例如 ADBC。
当我想获取一个 table 的所有字段但只获取 select 时,ABAP 的 OpenSQL 中是否有一种方法可以简化 JOIN
中的 select 列从其他 table(s)?
例如,在mysql we can simply do:
SELECT tb1.*, tb2.b, tb2.d
FROM tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a
但是,OpenSQL 似乎不允许 selecting tb1~*, tb2~b, tb2~d
所以我不得不求助于此:
SELECT tb1.x, tb1.y, tb1.z, tb2.b, tb2.d
FROM tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a
对于非常大的 tables,尤其是标准的 tables,这变得笨拙、难以阅读并且更令人讨厌维护。
有没有更好的方法select tb1的所有字段和tb2的部分字段?
是的,这在 7.40 SP08 的 OpenSQL 中是可能的。看到这个 article.
文章中的引文有。
列规范
In the SELECT list, you can specify all columns of a data source using the syntax data_source~* from 7.40, SP08 on. This can be handy when working with joins.
SELECT scarr~carrname, spfli~*, scarr~url
FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
INTO TABLE @DATA(result).
不幸的是,在以前的版本中,必须一一指定列或使用数据库本机 SQL 例如 ADBC。