1

我正在尝试使用 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 上的链接类型为“outer”时,我从 parentEntity 获取所有行,但当它为“inner”时,parentEntity 的行由子实体的连接结果过滤。

<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>
4

1 回答 1

1

请参阅我上面的评论。SQL Profiler 救了我,向我展示了发送到数据库的确切内容,并且连接按照我想要的方式嵌套。

于 2013-04-24T22:25:27.390 回答