sql server 的 t-sql 好象有这样的功能,oracle 不清楚.SELECT Cust.CustomerID, 
OrderHeader.CustomerID,
OrderHeader.SalesOrderID, 
Detail.SalesOrderID, Detail.LineNumber,Detail.ProductID, 
Product.Name,
Detail.OrderQty
FROM Sales.Customer Cust, 
Sales.SalesOrderHeader OrderHeader,
Sales.SalesOrderDetail Detail,
Production.Product Product
WHERE Cust.CustomerID = OrderHeader.CustomerID
AND   OrderHeader.SalesOrderID = Detail.SalesOrderID
AND   Detail.ProductID = Product.ProductID
AND   (Cust.CustomerID BETWEEN 44 AND 46)
ORDER BY OrderHeader.CustomerID,
OrderHeader.SalesOrderID
FOR XML AUTO
查询结果如下:<Cust CustomerID="44">
<OrderHeader CustomerID="44" SalesOrderID="53575">
<Detail SalesOrderID="53575" LineNumber="2" ProductID="952" OrderQty="2">
<Product Name="Chain" />
</Detail>
<Detail SalesOrderID="53575" LineNumber="1" ProductID="969" OrderQty="1">
<Product Name="Touring-1000 Blue, 60" />
</Detail>
<Detail SalesOrderID="53575" LineNumber="3" ProductID="972" OrderQty="1">
<Product Name="Touring-2000 Blue, 54" />
</Detail>
</OrderHeader>
<OrderHeader CustomerID="44" SalesOrderID="59024"><Detail SalesOrderID="59024" LineNumber="1" ProductID="972" OrderQty="3">
<Product Name="Touring-2000 Blue, 54" />
</Detail>
<Detail SalesOrderID="59024" LineNumber="2" ProductID="957" OrderQty="2">
<Product Name="Touring-1000 Yellow, 60" />
</Detail>
</OrderHeader>
</Cust>
<Cust CustomerID="46">
<OrderHeader CustomerID="46" SalesOrderID="48354">
<Detail SalesOrderID="48354" LineNumber="1" ProductID="730" OrderQty="1">
<Product Name="LL Road Frame - Red, 62" />
</Detail>
</OrderHeader>
</Cust>