Я использую SQL Server 2008 и пытаюсь создать собственный xml, используя режим EXPLICIT
с FOR XML
.
У меня есть отношение «один ко многим», имеющее следующий запрос
select
p.personid, p.firstname, a.P_City
from
tblPeople p with (nolock)
left outer join
tblAddresses a with (nolock) on p.personid = a.personid
where
p.personid = 120773
Я хочу, чтобы человек как родитель и адрес как ребенок могли быть несколькими, потому что люди, к которым нужно обращаться, имеют отношение один ко многим.
Я написал следующий запрос
select 1 as TAG,
null as parent,
p.personid as [person!1!personid],
p.FirstName as [person!1!firstname],
null as [addr!2!]
from tblPeople p with (nolock) where p.PersonID in (120773,117396)
union all
select 2,1,
p.PersonID, p.FirstName, a.P_City from tblAddresses a with(nolock), tblPeople p
where p.PersonID=a.PersonID and p.PersonID in (120773,117396)
for xml explicit
Вывод выглядит следующим образом: это сломанный xml с вложенным человеком, наверняка что-то не так с моим кодом.
<person personid="117396" firstname="David"/>
<person personid="120773" firstname="Doyle">
<addr>Mount Rainier</addr>
<addr>Annapolis</addr>
</person>
Может кто-нибудь, пожалуйста, помогите мне!!!