0

我正在处理一个现有查询,该查询当前连接了许多表,但也连接到子查询。类似于我在下面显示的内容:

SELECT p.*
FROM Product as p
LEFT JOIN (
SELECT pl.*
FROM ProductList
WHERE .....) as pl
ON p.id = pl.productId
WHERE....

现在在实际查询和更多条件中有比这更多的表,但我只想专注于这个问题。

我们想要的是内部查询(在 ProductList 上)以 XML 形式返回,当然也将其连接到顶级表上的正确行。

我猜是这样的

SELECT top 10 p.*
FROM Catalogue.Product as p
LEFT JOIN (
SELECT TOP 10 *
FROM Catalogue.ProductListItem
FOR XML RAW('Product'), ROOT('Products'), ELEMENTS
) as pl
ON p.productid = salespart.nodes('Products/Product/ProductId')

你能帮我吗?

4

1 回答 1

2

不太清楚您希望输出是什么,但我想对您来说最好的方法是在Catalogue.ProductListItem为每个产品构建 XML 的字段列表中使用相关的子查询。

select p.*,
       (
         select pl.*
         from Catalogue.ProductListItem as pl
         where pl.ProductID = p.ProductID
         for xml raw('Product'), root('Products'), elements, type
       ) as ProductXML
from Catalogue.Product as p
于 2013-04-03T14:16:37.207 回答