繁体   English   中英

可以针对超时异常改进查询吗

[英]Can the query be Improved as it is going for timeout exception

由于超时异常,如何改进查询。 有人可以帮助我改善查询结果吗?

UPDATE pdtdeliveryTable p  SET p.OrderID = IFNULL
( 
   (SELECT OrderID from OrderTable o where o.DiagramID=p.DiagramID AND o.DeliveryDate=
   (
        Select min(o2.DeliveryDate) from OrderTable o2 where o2.DiagramId=o.DiagramID Order by o2.DeliveryDate
   )Limit 1),0
)
where p.OrderID=0;

尝试这个:

UPDATE pdtdeliveryTable p  
LEFT OUTER JOIN (SELECT o.DiagramID, o.OrderID FROM OrderTable o 
                 INNER JOIN ( SELECT DiagramID, MIN(DeliveryDate) DeliveryDate 
                              FROM OrderTable GROUP BY DiagramID
                            ) AS A ON o.DiagramID = A.DiagramID AND o.DeliveryDate = A.DeliveryDate 
               ) AS A ON A.DiagramID = p.DiagramID
SET p.OrderID = IFNULL(A.OrderID, 0);

要么

UPDATE pdtdeliveryTable p  
LEFT OUTER JOIN ( SELECT DiagramID, OrderID 
                  FROM (SELECT DiagramID, OrderID, DeliveryDate FROM OrderTable ORDER BY DiagramID, DeliveryDate) AS A 
                  GROUP BY DiagramID 
                ) AS A ON p.DiagramID = A.DiagramID 
SET p.OrderID = IFNULL(A.OrderID, 0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM