Two-way join in a predicate
File: order.xml
<order>
<car model="A">
<id>0001</id>
<name language="en">name 1</name>
</car>
<car model="B">
<id>0002</id>
<name language="en">name 2</name>
</car>
<car model="B">
<id>0003</id>
<name language="en">name 3</name>
</car>
</order>
File: inventory.xml
<inventory id="inv0001" date="2008-12-19" loc="USA">
<car model="A" id="0001" quantity="1" color="navy"/>
<car model="B" id="0002" quantity="1" color="red"/>
<car model="B" id="0003" quantity="2" color="red"/>
<car model="C" id="0004" quantity="1" color="white"/>
<car model="C" id="0004" quantity="1" color="gray"/>
<car model="A" id="0001" quantity="1" color="black"/>
</inventory>
File: Query.xquery
for $car in doc("inventory.xml")//car,
$car in doc("Data.xml")//car[id = $car/@id]
return <car id="{$car/@id}"
name="{$car/name}"
quan="{$car/@quantity}"/>
Related examples in the same category