Die FROM-Klausel kann mehr als ein Element enthalten. Durch die Angabe mehrerer Elemente in der FROM-Klausel wird der übliche kartesische Produktverknüpfungseffekt erzeugt, d. h., das Ergebnis enthält ein Element für alle Kombinationen von Elementen in den beiden Listen. Dies ist derselbe Verknüpfungseffekt wie bei der Standard-SQL.
Die Invoice-Nachricht enthält einen Satz mit Kundendaten, Zahlungsinformationen und Details zu den vom Kunden getätigten Einkäufen. Zur Verarbeitung der eingehenden Invoice-Nachricht wird folgender ESQL-Code codiert:
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);
Als Ergebnis wird folgende Ausgabenachricht generiert:
<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>
Es gibt drei Ergebnisse, ausgehend von der Anzahl der Beschreibungen in der ersten Liste (eins) multipliziert mit der Anzahl der Preise in der zweiten (drei). In den Ergebnisse werden systematisch alle Kombinationen der beiden Listen verarbeitet. Dies wird bei einem Blick auf die Felder LastName und UnitPrice in den einzelnen Ergebnissen deutlich:
LastName Smith UnitPrice 27.95 LastName Smith UnitPrice 42.95 LastName Smith UnitPrice 59.99
Sie können Daten aus einer Liste und einer Nicht-Liste oder aus zwei Nicht-Listen usw. verknüpfen. Beispiel:
OutputRoot.XML.Test.Result1[] = (SELECT ... FROM InputBody.Test.A[], InputBody.Test.b); OutputRoot.XML.Test.Result1 = (SELECT ... FROM InputBody.Test.A, InputBody.Test.b);
Beachten Sie in allen Fällen die Position von []. In der FROM-Liste kann eine beliebige Anzahl von Elementen angegeben werden, nicht nur ein oder zwei. Wenn mit einem Element [] als Definition einer Liste von Elementen angegeben wird, generiert die SELECT-Anweisung eine Liste von Ergebnissen. (Auch wenn die Liste nur ein Element enthält, gibt die SELECT-Anweisung möglicherweise eine Liste von Elementen zurück.) Das Ziel der Zuordnung muss eine Liste angeben (d. h. am Ende muss [] stehen), oder Sie müssen das Schlüsselwort THE verwenden, wenn Sie wissen, dass durch die WHERE-Klausel gewährleistet ist, dass nur eine Kombination gefunden wird.