Sql 将表及其子表转换为XML并返回?

Sql 将表及其子表转换为XML并返回?,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,将表及其子表(最多3级)转换为XML并返回的正确SQL语法是什么 下面是一个表结构和数据示例。尝试将表及其子表转换为XML SELECT * ,(SELECT * FROM childtable1 WHERE maintable_id = maintable.id FOR XML PATH('childtable1'),TYPE,ELEMENTS) ,(SELECT *

将表及其子表(最多3级)转换为XML并返回的正确
SQL
语法是什么


下面是一个表结构和数据示例。

尝试将表及其子表转换为XML

SELECT  *
        ,(SELECT    *
            FROM    childtable1
            WHERE   maintable_id = maintable.id
            FOR XML PATH('childtable1'),TYPE,ELEMENTS)
        ,(SELECT    *
                    ,(SELECT * 
                        FROM    childtable3
                        WHERE   childtable2_id  =   childtable2.id
                        FOR XML PATH('childtable3'),TYPE,ELEMENTS)
            FROM    childtable2 
            WHERE   maintable_id  =   maintable.id
            FOR XML PATH('childtable2'),TYPE,ELEMENTS)
FROM    maintable 
FOR XML PATH('maintable'),ELEMENTS,ROOT('root')

在这里,每个子表都类似于直接主表的子查询。

Plz提供了一些示例结构和虚拟数据……这是一个开始!如何指定childtable1和childtable2直接位于maintable下,而childtable3应位于childtable2下?已修改,请参见chk