Я хотел бы получить вывод XML из индексированных таблиц полнотекстового поиска, как показано ниже. но мой код генерирует неправильный синтаксис возле объединения
мой код
SELECT
Table1.Name 'Table1/Name',
Table1.Email 'Table1/Email',
( SELECT
Table2.Address 'Address',
Table2.Phone 'Phone',
FROM Details Table2
INNER JOIN Regd Table3 ON Table3.Code = Table2.Code
AND (Table3.SubCode = xml.SubCode) AND (Table1.Id = Table3.Id)
FOR XML PATH ('Details'),Type) as 'Table1',
FROM Users Table1
INNER JOIN CONTAINSTABLE(Users,[Name], @SearchKeys) AS KEY_TBL ON Id = KEY_TBL.[KEY]
INNER JOIN Regd Table3 ON Table3.Id = Table1.Id,
OPENXML (@idoc,'/Request/List',2)
WITH (SubCode NVARCHAR(20)) as xml
WHERE (xml.SubCode = '' or Table3.SubCode = xml.SubCode) AND (Table3.Id = Table1.Id)
FOR XML PATH ('List')
UNION
SELECT
SELECT
Table1.Name 'Table1/Name',
Table1.Email 'Table1/Email',
( SELECT
Table2.Address 'Address',
Table2.Phone 'Phone',
FROM Details Table2
INNER JOIN Regd Table3 ON Table3.Code = Table2.Code
AND (Table3.SubCode = xml.SubCode) AND (Table1.Id = Table3.Id)
FOR XML PATH ('Details'),Type) as 'Table1',
FROM Users Table1
INNER JOIN CONTAINSTABLE(Users,[Email], @SearchKeys) AS KEY_TBL ON Id = KEY_TBL.[KEY]
INNER JOIN Regd Table3 ON Table3.Id = Table1.Id,
OPENXML (@idoc,'/Request/List',2)
WITH (SubCode NVARCHAR(20)) as xml
WHERE (xml.SubCode = '' or Table3.SubCode = xml.SubCode) AND (Table3.Id = Table1.Id)
FOR XML PATH ('List')
здесь положено, я ожидал иметь
<List>
<Table1>
<Name></Name>
<Email></Email>
<Details>
<Address></Address>
<Phone></Phone>
</Details>
</Table1>
</List>
я думаю, что параметр request xml здесь не будет полезен, так как это всего лишь синтаксическая ошибка