Как вернуть XML из SQL Server 2008, структурированный с несколькими вариантами выбора, имеющими общий родительский элемент

Я пробовал использовать "FOR XML PATH", "FOR XML EXPLICIT" и "FOR XML AUTO", но данные никогда не структурируются с правильной иерархией.

По сути, у меня есть одна родительская таблица (Customers )и 3 дочерние таблицы. Каждая таблица имеет столбец customerid. Существует связь от одного -до -многих из таблицы Customers с каждой из 3 дочерних таблиц.

В качестве фиктивного примера у меня есть родительская таблица «Клиенты» и еще 3 таблицы -«Продукты», «Хобби» и «Транспортные средства» -, связанные с таблицей «Клиенты» идентификатором клиента.

Что такое код SQL для получения следующей структуры-

<Customers>
    <Customer customerid="1" name="Fred">
       <Products>
           <Product productname="table" />
           <Product productname="chair" />
           <Product productname="wardrobe" />
       </Products>
       <Hobbies>
           <Hobby hobbyname="Golf" />
           <Hobby hobbyname="Swimming" />
       </Hobbies>
       <Vehicles>
           <Vehicle name="Car" color="Red" />
           <Vehicle name="Bicycle" color="Blue" />
       </Vehicles>
    </Customer>
    <Customer customerid="2" name="Sue">
       <Products>
           <Product productname="CD player" />
           <Product productname="Picture frame" />
       </Products>
       <Hobbies>
           <Hobby hobbyname="Dancing" />
           <Hobby hobbyname="Reading" />
       </Hobbies>
       <Vehicles>
           <Vehicle name="Car" color="Yellow" />
       </Vehicles>
    </Customer>
</Customers>
5
задан Roman Pekar 5 September 2013 в 20:09
поделиться