我想更新三列,即LCID,LCNo,AmendmentStatus,它们是从PI Table中选择的,所以我写下了Update Query,它们是成功执行的:
UPDATE #TempTableOne
SET
LCID=(SELECT ISNULL(ExportLCID,0) FROM ExportLC WHERE ExportLCID= (SELECT LCID FROM [PI] WHERE PIID=(SELECT PIID FROM Job WHERE JobID=TT.OrderID))),
LCNo=(SELECT ISNULL(ExportLCNo,'') FROM ExportLC WHERE ExportLCID= (SELECT LCID FROM [PI] WHERE PIID=(SELECT PIID FROM Job WHERE JobID=TT.OrderID))),
AmendmentStatus=(SELECT AmendmentStatus FROM ExportLC WHERE ExportLCID= (SELECT LCID FROM [PI] WHERE PIID=(SELECT PIID FROM Job WHERE JobID=TT.OrderID))),
FROM #TempTableOne AS TT
WHERE TT.OrderType=3
但更新查询是否可能执行单个查询,如:
Update #TempTableOne
SET SELECT LCID = ISNULL(ExportLCID,0) ,
LCNo=ISNULL(ExportLCNo,''),
AmendmentStatus=AmendmentStatus
FROM ExportLC
WHERE ExportLCID = (SELECT LCID
FROM [PI]
WHERE PIID=(SELECT PIID
FROM Job
WHERE JobID=TT.OrderID
)
)
)
因为我想加快我的查询
答案 0 :(得分:3)
将您的查询更改为使用JOINS可以加快速度:
Update #TempTableOne
SET LCID = ISNULL(lc.ExportLCID,0) ,
LCNo=ISNULL(lc.ExportLCNo,''),
AmendmentStatus=lc.AmendmentStatus
FROM #TempTableOne tt
JOIN Job on Job.JobID = TT.OrderID
JOIN [PI] on [PI].PIID = Job.PIID
JOIN ExportLC lc on [PI].LCID = lc.ExportLCID