FOR XML EXPLICIT
Say I have this setup: -- tables declare @main table (id int, name varchar(20)) declare @subA table (id int, mid int, name varchar(20)) declare @subA1 table (id int, subAid int, name varchar(20)) declare @subA2 table (id int, subAid int, name varchar(20)) declare @subB table (id int, mid int, name varchar(20)) -- sample data insert @main values (1, 'A') insert @main values (2, 'B') insert @SubA values (1, 1, 'A') insert @SubA values (2, 1, 'B') insert @SubA values (3, 2, 'C') insert @SubA1 values (1, 1, 'A') insert @SubA2 values (1, 2, 'A') insert @SubB values (1, 1, 'A') insert @SubB values