1) Query Link for below dataQuery
<link name="LINK1" parentQuery="Q1" parentColumn="VALUE1" childQuery="Q2" childColumn="COLUMN1"/>
<link name="LINK2" parentQuery="Q2" parentColumn="COLUMN1" childQuery="Q3" childColumn="COLUMN6"/>
2) Column link between multiple queries
Multiple queries can be linked in XML Data Template by passing the column from parent query as parameter to the child sqlStatement. This approach is recommended over using Query link and there is no limit for number of queries to be linked.
<dataQuery>
<sqlStatement name="Q1">
<![CDATA[
SELECT XT1.VALUE1 from
XX_TABLE1 XT1
WHERE 1=1
AND XT1.COLUMN1 = :PARAMETER1 <your parameter is optionalter>
]]>
</sqlStatement>
<sqlStatement name="Q2">
<![CDATA[
SELECT XT2.COLUMN1, XT2.COLUMN2 from
XX_TABLE2 XT2
WHERE 1=1
AND XT2.COLUMN1 = :VALUE1
]]>
</sqlStatement>
<sqlStatement name="Q3">
<![CDATA[
SELECT XT3.COLUMN5, XT3.COLUMN6 from
XX_TABLE3 XT3
WHERE 1=1
AND XT3.COLUMN6 = :COLUMN1
]]>
</sqlStatement>
</dataQuery>
The same can be represented in datastructure of XML Data template.
<dataStructure>
<group name="G_PARENT" source="Q1">
<element name="VALUE1" value="VALUE1"/>
<group name="G_HDR_DETAILS" source="Q2">
<element name="COLUMN1" value="COLUMN1"/>
<element name="COLUMN2" value="COLUMN2"/>
<group name="G_LINE_DETAILS" source="Q3">
<element name="COLUMN5" value="COLUMN5"/>
<element name="COLUMN6" value="COLUMN6"/>
</group>
</group>
</group>
</dataStructure>