如何构建查询以获取具有通过 ProxyConnector 链接的其他对象的对象

How to build a query to get objects that have other objects linked via ProxyConnector

我需要一个查询来获取连接到 ADU1(图中)的对象列表。在此列表中,我只需要对象的名称。这我已经在做了。但是,如果有一个 ProxyConnector,如图中所示,我需要列表还包含跟踪连接器链接到的对象。

目标是此查询用于填充文档模板的片段。

有人有什么想法或提示吗?谢谢!

快到了。正如您所注意到的,«trace» 连接器将对象 Phase1 与一个不可见对象连接起来,同时 nameobject_type 都设置为 ProxyConnector

此 ProxyConnector 记录通过字段 Classifier_guid 连接到您在 ADU1Object 1 之间的关联。这个对应协会的ea_guid

因此,为了同时获得 Object 1Phase1,您可以使用这样的查询

select o2.name
from t_object o 
inner join t_connector c on o.Object_ID in (c.Start_Object_ID, c.End_Object_ID)
inner join t_object prx on prx.Classifier_guid = c.ea_guid
inner join t_connector pc on prx.Object_ID in (pc.Start_Object_ID, pc.End_Object_ID)
left join t_object o2 on o2.Object_ID in  (pc.Start_Object_ID, pc.End_Object_ID)
                            and o2.Object_ID <> prx.Object_ID
where o.ea_guid = '{1CAC051A-142D-4430-9E9D-F323C38FE547}' --guid of ADU1
union
select o2.name
from t_object o 
inner join t_connector c on o.Object_ID in (c.Start_Object_ID, c.End_Object_ID)
inner join t_object o2 on o2.Object_ID in  (c.Start_Object_ID, c.End_Object_ID)
                            and o2.Object_ID <> o.Object_ID
where o.ea_guid = '{1CAC051A-142D-4430-9E9D-F323C38FE547}' --guid of ADU1

第一个查询将让您通过代理连接器连接元素,第二个查询将让您以常规方式连接元素。

此查询使用 SQL 服务器语法。您可能需要添加一堆括号才能将其转换为 MS Access 语法(用于 .eap 和 .eapx 文件)