有5种类型的Web服务S1
,S2
,S3
,S4
,S5
,它们将它们的日志存储在单独的表中,T1
,T2
,T3
,T4
,T5
。一个服务的日志无法到达另一个服务的日志表。 有一个程序可以收集所有这些日志并为所有服务生成一个公共日志。有一个临时表Temp_Tab
,它可以包含所有表中的所有日志。因此,现在在这个程序中收集所有日志写入5个单独的select
,如您所知,这需要很长时间。 我想代替这 5select
写 1select
语句(好吧,最多 2 个(来缩短。 建议用OUTER JOIN-Ohm,但在JOIN-e中必要的"公共字段"替换在ON之后以指定关系。在表T1
、T2
、T3
、T4
、T5
中,没有任何共同点,也不可能有共同点,因为有关于特定服务操作的日志。
查看选择 - 联合。您的目标 itab 当然需要所有相关字段,或者您使用 STRICT(如果您在 select 子句中指定了其他字段(或带有 @DATA(( 的内联声明。如果需要,可以使用带有 AS 的别名修改列名。
例:
SELECT a_id as id, a_name as name, a_descr as descr, a_value as value
FROM tab_a
UNION ALL
SELECT b_id as id, b_name as name, b_descr as descr, b_value as value
FROM tab_b
UNION ALL
SELECT c_id as id, c_name as name, c_descr as descr, c_value as value
FROM tab_c
INTO TABLE @lt_temp_tab.
如果它们具有相同的字段名称,则可以跳过as部分。你的文字是这样说的,你的图像没有。