Выделите все поля таблицы A, но выберите поля таблицы B
Есть ли способ в OpenAP ABAP, чтобы упростить выбор столбцов в JOIN
когда я хочу получить все поля одной таблицы, но только выбранные поля из других таблиц?
Например, в MySQL мы можем просто сделать:
SELECT tb1.*, tb2.b, tb2.d
FROM tableA tb1
INNER JOIN tableB tb2 ON tb1.x = tb2.a
Тем не менее, OpenSQL не позволяет выбирать 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
Для очень больших таблиц, особенно стандартных таблиц, это становится громоздким, трудным для чтения и более раздражающим в обслуживании.
Есть ли лучший способ выбрать все поля tb1 и некоторые поля из tb2?
1 ответ
Да, это возможно в OpenSQL от 7.40 SP08. Смотрите эту статью.
Цитата из статьи имеет это.
Спецификация колонки
В списке SELECT вы можете указать все столбцы источника данных, используя синтаксис data_source~* от 7.40, SP08 и далее. Это может быть удобно при работе с соединениями.
SELECT scarr~carrname, spfli~*, scarr~url
FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
INTO TABLE @DATA(result).
К сожалению, в предыдущих версиях нужно было указывать столбцы один за другим или использовать собственный SQL базы данных, например, с ADBC.