我有這樣的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中的最後一個id]是來自CRSTask的任務ID,與CRSTaskReceiver 有一對一的關係,taskReceiver與Portal_Users_View(id,userName)有一對一的關係 - 我需要用123代替它的等價用戶名 - 我使用連接..它需要很多時間,也使用表之間的地方需要很多時間
您需要向我們顯示您的修改後的查詢。以及您嘗試加入的表格的結構。 – Oded 2010-01-27 08:22:09
OK烏迪德,等待一分鐘 – RMohammed 2010-01-27 08:27:27
SELECT t.id AS的taskid,STUFF((SELECT '' + x.ArabicName FROM(SELECT阿拉伯人名 FROM Portal_Users_View WHERE ID IN(SELECT CRSTaskReceiver.ReceiverID FROM CRSTaskReceiver WHERE CRSTaskReceiver。 CRSTaskID IN/* 305 */ (選擇C CAST(ID作爲VARCHAR(200))AS TID FROM CRSTask WHERE c.ParentTask = 7562 )) )× FOR XML PATH( '') ) 1, 1, '' )AS strIDS FROM C RSTask t WHERE t.ParentTask IS NULL AND t.id = 7562 – RMohammed 2010-01-27 08:34:58