У меня есть этот запрос SQL
SELECT t.id AS taskid,
STUFF(
(
SELECT ',' + x.tID
FROM (
SELECT CAST(id AS VARCHAR(200)) AS tid
FROM CRSTask c WHERE c.ParentTask =
7562 -- comment this line
) x
FOR XML PATH('')
),
1,
1,
''
) AS strIDS
FROM CRSTask t
WHERE t.ParentTask IS NULL
AND t.id = 7562 -- comment this line
результат этого запроса будет:
id strIDS
7562 7615,7616,7617,7618,7619,7620,7621,7631,7632,123
Это хорошо, но когда я попытался заменить strIDS
его именами из другой таблицы, это заняло много времени.
например. 123 [последний идентификатор в strIDS] является taskID из CRSTask, имеет отношение один к одному с CRSTaskReceiver
и TaskReceiver имеет отношение один к одному с Portal_Users_View (id, userName)
-Мне нужно заменить 123 на эквивалентное имя пользователя
-Я сделал это с помощью Joins .. это занимает много времени, также используя Где между таблицами много времени