SELECT a.FundIDRecv,a.SubscribeDt, b.FundName,
(
SELECT SUM(c.PricePerWeek)
FROM tbl_Hive c
WHERE c.FundID IN
(
SELECT FundID from tbl_FundStatic
WHERE FundID IN
(
SELECT FundIDSend
FROM tbl_FundSubscriptions
WHERE FundIDRecv = a.FundIDRecv
AND SubscribeDt >= subdate(CURDATE(), INTERVAL weekday(CURDATE()) DAY)
)
AND UserID = '14'
)
) as Price
FROM tbl_FundSubscriptions a, tbl_Hive b
WHERE a.FundIDRecv = b.FundID
AND a.SubscribeDt >= subdate(CURDATE(), INTERVAL weekday(CURDATE()) DAY)
AND a.FundIDRecv IN
(
SELECT FundIDRecv
FROM tbl_FundSubscriptions
WHERE FundIDSend IN (
SELECT FundID
FROM tbl_FundStatic
WHERE UserID = '14'
)
)
GROUP BY FundIDRecv
此查詢需要大量時間來獲取數據。MySQL:查詢優化
如何優化此查詢以使其執行並獲取結果的速度比它快?
取決於。你的表和索引是什麼?這是一個很大的區別。 – 2011-03-16 11:04:22
指出查詢應該做什麼。 – Pentium10 2011-03-16 11:12:06
請給出您的查詢的數據庫結構(表/索引)和執行計劃(解釋) – oryol 2011-03-16 11:25:59