Comment renvoyer du XML à partir de SQL Server 2008 qui est structuré avec plusieurs sélections de partage d'un parent commun
J'ai essayé d'utiliser "POUR XML PATH", "FOR XML EXPLICIT" et "FOR XML AUTO", mais les données ne sont jamais structuré avec la bonne hiérarchie.
En gros, j'ai une table parent (Clients) et 3 tables enfants. Chaque table a une colonne customerid. Il y a un un-à-plusieurs relation de la table Clients à chacune des 3 tables enfants.
Comme un simulacre d'exemple, j'ai un parent "Clients" de la table, et j'ai 3 autres tables - les Produits, les Loisirs et les Véhicules - toutes liées à la table Clients par un code client.
Qu'est-ce que le code SQL pour réaliser suivant la nature de la structure
<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>
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela - il utilise POUR
XML PATH
et les sous-sélections pour créer le "lié" sous-nœuds, pour un client donné (- je limité à deux sous-tableaux - mais vous devriez obtenir le "résumé" de pouvoir l'étendre à un nombre quelconque de sous-tables):Me donne une sortie quelque chose comme:
À l'aide de
FOR XML RAW
=> sql violon démo