我正在尝试使用FetchXML进行一些嵌套连接。我想在两个链接的子实体上进行内部联接,然后对该结果执行外部联接以从父项检索所有行以及来自两个链接子实体的数据(如果存在)。如果childEntity2中有记录,我只想要来自childEntity1的数据,但我总是想要父级的所有行。
在T-SQL中它就像
SELECT [fields] FROM ParentEntity OUTER JOIN
(childEntity1 INNER JOIN childEntity2 ON childEntity1.id =
childEntity2.childEntity1id)
ON ParentEntity.id = childEntity1.parentEntityId.
在FetchXML中,当我对所有内容使用link-type = outer时,我按预期从父实体获取所有行,但是当我将子实体上的链接类型更改为内部时,我的结果集不包含行其中没有从两个子实体的连接返回任何内容。
是否可以像上面的FetchXML中的SQL语句一样嵌套内连接?
这是我的FetchXML的简化版本。当childEntity1 / childEntity2上的link-type为“outer”时,我从parentEntity获取所有行,但是当它是“inner”时,parentEntity的行将被子实体的join的结果过滤。
<fetch version='1.0' mapping='logical' distinct='false'>
<entity name='parentEntity'>
<link-entity link-type='outer' name='childEntity1' from='parentEntityId' to='parentEntityId'>
<link-entity link-type='inner' name='childEntity2' from='childEntity1Id' to='childEntity1Id'>
</link-entity>
</link-entity>
</entity>
</fetch>
答案 0 :(得分:1)
请参阅上面的评论。 SQL Profiler开始拯救我并向我展示了发送到数据库的确切内容,并且连接按照我想要的方式嵌套。