FetchXML을 사용하여 일부 중첩 된 조인을 시도하고 있습니다. 두 개의 연결된 하위 엔터티에 대한 내부 조인을 수행 한 다음 해당 결과에 대한 외부 조인을 수행하여 두 개의 연결된 자식 엔터티의 데이터가있는 경우 상위의 모든 행을 검색합니다. childEntity2에 레코드가있는 경우에만 childEntity1의 데이터 만 원하지만 항상 부모의 모든 행을 원합니다.외부 조인과 중첩 된 내부 조인을 사용하는 FetchXML : 중첩 된 내부 조인에서 외부 조인을 수행 할 수 있습니까?
T-SQL에서 그것은 것 내가 모든 것을 링크 형 = 외부를 사용할 때 나는를 변경할 때, 나는 예상대로 부모 개체로부터 모든 행을 얻을 수 있지만, FetchXML에서
SELECT [fields] FROM ParentEntity OUTER JOIN
(childEntity1 INNER JOIN childEntity2 ON childEntity1.id =
childEntity2.childEntity1id)
ON ParentEntity.id = childEntity1.parentEntityId.
, 같은 자식 엔터티에 대한 링크 형식을 inner로 설정하면 내 결과 집합에는 두 자식 엔터티의 조인에서 아무 것도 반환되지 않는 행이 포함되지 않습니다.
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>
모든 사람들은 인정하기가 부끄럽지만 중첩 된 조인은 실제로 예상대로 작동한다고 생각합니다. 나는 그들이하지 않은 것들로 가장하는 데이터 행을 가지고 있었고 그것은 내 쿼리를 엉망으로 만들고 있었다. 어쨌든 SQL Profiler는 DB로 보내지는 것을 정확히 보여 주었고, 내가 원했던 것입니다. –
이것에 대해 확실합니까? 이 테스트를 거친 것을 기억하고 예상 한 결과를 얻지 못했습니다 ... 필터 조건을 추가하여 '왼쪽'결과 만 검색하려고하면 문제가 발생합니다. – Nathan