我正在处理一个现有的查询,该查询当前加入了许多表,但也加入了子查询。像我在下面所示的东西:
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')
你能帮忙吗?
答案 0 :(得分: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