У меня есть 2 таблицы в базе данных Sql Server 2005 следующим образом
Request(RequestId int, Filter xml)
DataTable(Id int,.....)
В столбце фильтра есть список идентификаторов данных, например, в формате xml, например. 1013
Теперь я хочу выбрать данные из таблицы данных, которые соответствуют идентификаторам в фильтре xml. Вот что я придумала
select d.*
from request
cross apply filter.nodes('Ids/Id') as Ids(id)
inner join DataTable d on d.id = Ids.Id.value('.', 'int')
where requestid = 35
Это работает, но я хочу знать, является ли это лучшим способом сделать это.