J'ai cette requête SQLQuel est le meilleur pour cette requête, « jointure » ou « Où »
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
le résultat de cette requête sera:
id strIDS
7562 7615,7616,7617,7618,7619,7620,7621,7631,7632,123
Ce qui est bon, mais quand j'ai essayé de remplacer le strIDS
avec ses noms d'une autre table, il prend beaucoup de temps.
par exemple. 123 [dernier id dans strIDS] est un taskID de CRSTask, a une relation ont-à-un à CRSTaskReceiver et taskReceiver a une relation un-à-un à Portal_Users_View (id, nom d'utilisateur) -I nécessité de remplacer 123 avec son équivalent userName -J'ai fait en utilisant Joins .. cela prend beaucoup de temps, aussi en utilisant Où entre les tables prennent beaucoup de temps
Vous devez nous montrer votre requête modifiée. Et la structure des tables que vous essayez de rejoindre. – Oded
ok Oded, attendez une minute – RMohammed
SELECT t.id AS taskid, STUFF ((SELECT '' + x.ArabicName DE (SELECT DE Portal_Users_View noms de personnes en arabe WHERE ID IN (SELECT CRSTaskReceiver.ReceiverID DE CRSTaskReceiver OÙ CRSTaskReceiver. CRSTaskID IN/* 305 */ (SELECT CAST (id AS VARCHAR (200)) AS tid dE CRSTask c OÙ c.ParentTask = 7562 )) ) x POUR XML PATH ('') ), 1, 1, '' ) AS strIDS à partir de RSTask t O WH t.ParentTask EST NULL AND t.id = 7562 – RMohammed