2011-03-31 2 views
0

하나의 SOQL 쿼리가 있습니다. 쿼리가 관계를 통과하면 필드 목록에 하위 쿼리가 포함될 수 있습니다. 예 :누구든지이 SOQL 쿼리를 내게 설명 할 수 있습니까?

SELECT Account.Name, (SELECT Contact.LastName FROM Account.Contacts) FROM Account 

나는 '선회 관계'라고 이해할 수 없지만 누구나 설명 할 수 있습니까?

답변

0

필자는 FROM 절의 테이블과 관계가있는 테이블의 필드를 반환 할 SELECT를 사용할 수 있다고 말하고 있습니다. 관계가 있고 하위 쿼리를 사용하는 경우입니다. 귀하의 예에서 FROM이 거기에 관계가 있기 때문에 ("Account.Contacts") FROM이 "Account"에서 빠져 나오더라도 하위 쿼리를 사용하여 "Contact"테이블에서 "성"을 반환 할 수 있습니다.

0

이 경우 "한쪽"개체의 쿼리에서 "많은"쪽에서 일대 다 관계를 호출 할 수 있습니다. 결과적으로 최상위 쿼리에서 커서의 현재 위치를 기반으로 하위 테이블을 쿼리하는 SQL의 중첩 쿼리와 비슷합니다. 그 차이점은 대부분 SQL에서 플랫하게 시작하는 결과 세트와 SOQL에서 계층 적으로 나타나는 것입니다.

이 쿼리는 다음을 의미합니다. foreach 계정로드 이름 및 모든 연락처를 트래버스하여 연락처의 성을 검색합니다. 10 개의 연락처가있는 계정이 하나있는 경우 기본 행이 1 개가 생기고 연락처 목록에는 10 개의 행이 포함됩니다.