Gewusst wie: zurückgeben von XML in SQL Server 2008 ist so strukturiert, mit mehreren Auswahlmöglichkeiten, die eine gemeinsame übergeordnete
Ich habe versucht, mit "FOR XML PATH", "FOR XML EXPLICIT" und "FOR XML AUTO", aber die Daten werden nicht strukturiert mit der richtigen bietet.
Grundsätzlich habe ich eine übergeordnete Tabelle (Kunden) und 3 child-Tabellen. Jede Tabelle hat eine Spalte customerid. Es gibt eine eins-zu-viele-Beziehung aus der Customers-Tabelle zu jeder der 3 child-Tabellen.
Als mock-Beispiel habe ich eine übergeordnete "Kunden" - Tabelle, und habe ich 3 weitere Tabellen - Produkte, Hobbys und Fahrzeuge - alle im Zusammenhang mit der Tabelle Kunden, indem Sie eine customerid.
Was ist der SQL-code für die folgende Art von Struktur -
<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>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren Sie etwas wie dieses - es verwendet FÜR
XML PATH
und subselects zu erstellen, die "verlinkten" sub-Knoten für einen bestimmten Kunden (ich begrenzte diese auf zwei sub-Tabellen - aber Sie sollten das "wesentliche" der it und in der Lage sein zu verlängern, um eine beliebige Anzahl von verknüpften Untertabellen):Gibt mir eine Ausgabe etwa wie:
Mit
FOR XML RAW
=> sql fiddle-demo