FetchXML を使用してネストされた結合を実行しようとしています。リンクされた 2 つの子エンティティに対して内部結合を実行し、その結果に対して外部結合を実行して、親からすべての行を取得し、リンクされた 2 つの子エンティティが存在する場合はそのデータも取得します。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 を使用すると、期待どおりに親エンティティからすべての行が取得されますが、子エンティティのリンク タイプを内部に変更すると、結果セットに何もない行が含まれません。 2 つの子エンティティの結合から返されます。
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>