Sql 将生成的XML列(从子查询)连接到父查询
我正在处理一个现有的查询,该查询当前连接许多表,但也连接到子查询。类似于我在下面展示的内容:Sql 将生成的XML列(从子查询)连接到父查询,sql,sql-server,Sql,Sql Server,我正在处理一个现有的查询,该查询当前连接许多表,但也连接到子查询。类似于我在下面展示的内容: SELECT p.* FROM Product as p LEFT JOIN ( SELECT pl.* FROM ProductList WHERE .....) as pl ON p.id = pl.productId WHERE.... 现在,在实际查询中有比这更多的表和更多的条件,但我只想集中讨论这个问题 我们想要的是内部查询(在ProductList上)以XML的形式返回,当然还要将其连接到
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')
您能帮忙吗?不太清楚您希望输出是什么,但我想最好是在字段列表中使用一个相关的子查询,该子查询从
catalog.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
这是我在这里得到的一个建议,但由于查询的其他部分很复杂,所以它不起作用。谢谢你,我想,这看起来确实是个正确的答案,你确实比我说的更好地解释了我想要实现的目标。