FROM절은 한 항목만 포함하도록 제한되지 않습니다. FROM절에서 다중 항목을 지정하면 일반 데카르트 조인 효과가 생성되며 이 경우 결과에는 두 목록에 있는 항목의 모든 결합에 대한 항목이 있습니다. 표준 SQL과 동일한 조인 효과입니다.
송장(invoice) 메시지는 고객의 자세한 내용, 지불의 자세한 내용 및 고객이 구매한 자세한 내용을 포함합니다. 입력 송장(invoice) 메시지를 처리하기 위해 다음과 같은 ESQL을 코딩하는 경우,
SET OutputRoot.XML.Items.Item[] = (SELECT D.LastName, D.Billing, P.UnitPrice, P.Quantity FROM InputBody.Invoice.Customer[] AS D, InputBody.Invoice.Purchases.Item[] AS P);
다음 출력 메시지가 생성됩니다.
<Items> <Item> <LastName>Smith</LastName> <Billing> <Address>14 High Street</Address> <Address>Hursley Village</Address> <Address>Hampshire</Address> <PostCode>SO213JR</PostCode> </Billing> <UnitPrice>27.95</UnitPrice> <Quantity>2</Quantity> </Item> <Item> <LastName>Smith</LastName> <Billing> <Address>14 High Street</Address> <Address>Hursley Village</Address> <Address>Hampshire</Address> <PostCode>SO213JR</PostCode> </Billing> <UnitPrice>42.95</UnitPrice> <Quantity>1</Quantity> </Item> <Item> <LastName>Smith</LastName> <Billing> <Address>14 High Street</Address> <Address>Hursley Village</Address> <Address>Hampshire</Address> <PostCode>SO213JR</PostCode> </Billing> <UnitPrice>59.99</UnitPrice> <Quantity>1</Quantity> </Item> </Items>
첫 번째 목록에 있는 설명의 수(1)에 두 번째 목록에 있는 가격의 수(3)를 곱한 수인 세 개의 결과가 있습니다. 결과는 두 목록의 모든 결합에서 체계적으로 작업합니다. 각 결과에서 선택된 CatNo 및 Number 필드를 보면 이를 확인할 수 있습니다.
LastName Smith UnitPrice 27.95 LastName Smith UnitPrice 42.95 LastName Smith UnitPrice 59.99
목록과 비목록, 또는 두 개의 비목록에서 발생하는 데이터를 조인할 수 있습니다. 예를 들면, 다음 코드와 같습니다.
OutputRoot.XML.Test.Result1[] = (SELECT ... FROM InputBody.Test.A[], InputBody.Test.b); OutputRoot.XML.Test.Result1 = (SELECT ... FROM InputBody.Test.A, InputBody.Test.b);
각각의 경우 []의 위치에 주의하십시오. FROM 목록에는 하나 또는 둘 뿐만 아니라 항목을 얼마든지 지정할 수 있습니다. 항목이 항목 목록을 나타내기 위해 []를 지정한 경우 SELECT는 결과 목록을 생성합니다(목록에는 하나의 항목만이 포함될 수도 있지만 SELECT는 잠재적으로 항목 목록을 리턴할 수 있음). 지정 대상은 목록을 지정해야 합니다. (따라서 []로 끝나거나 WHERE절이 하나의 결합만이 일치되도록 보장하는 경우 THE 키워드를 사용해야 합니다.)