我必须找出输入文件名的输出文件名:
select sourceid as RawFile, destinationid from audittraillogentry
where event ='67'
and innodename like '%_SFTP_%';
rawfile | destinationid
------------------------------------+--------------------------------------------
shortcodes_cdr_20140202_161239.csv | coll_DefaultCollectorGroup_0_1400591981_13
在上面提到的查询结果中我的输入文件名是shortcodes_cdr_20140202_161239.csv
(这可能是多个文件&我需要找到所有文件的输出)
现在基于上述查询的destinationid
,我找到了一个中间源ID
select sourceid, destinationid from audittraillogentry
where event ='80'
and innodename like '%_SFTP_%'
and sourceid = 'coll_DefaultCollectorGroup_0_1400591981_13';
sourceid | destinationid
--------------------------------------------+---------------------------------------------
coll_DefaultCollectorGroup_0_1400591981_13 | proc_DefaultCollectorGroup_0_1400591981_120
现在根据此结果的目标ID,我得到像这样的输出文件
select destinationid
from audittraillogentry
where event ='68'
and sourceid = 'proc_DefaultCollectorGroup_0_1400591981_120';
像这样我需要找到关于所有输入文件和输出文件的输出文件。我想知道如何做到这一点,任何人都可以帮助我,这将是一个很大的帮助
先谢谢
答案 0 :(得分:0)
将这三个查询视为三个不同表中的三个查询,然后您只需加入它们(......据我了解您的要求)。这样的事情可能就是你想要的:
select e68.destinationid
from audittraillogentry e68,
audittraillogentry e80,
audittraillogentry e67
where e67.event='67'
and e67.innodename like '%_SFTP_%'
and e67.destinationid=e80.sourceid
and e80.event='80'
and e80.innodename like '%_SFTP_%'
and e80.destinationid=e68.sourceid
and e68.event='68';
小提琴here。
如果你需要做很多事情,那么视图真的很方便 - 例如,常见事件类型的视图。