将表及其子表(最多3层深度)转换为XML并返回的正确SQL
语法是什么?
这是一个带有样本表结构和数据的SQLFiddle。
答案 0 :(得分:1)
尝试将您的表及其子表转换为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')
此处每个子表都类似于直接主表的子查询。