0
我已經採取了一個大項目,並作爲數據庫變大,一些代碼停止工作,轉換子查詢連接性能
這裏是找到那些rendering_requests
誰是最後rending_log
是pending
查詢,有時候有沒有狀態變化的記錄條目,記錄爲noaction
,我們不需要統計它們。這是我從查詢中理解的。
SELECT
COUNT(rr.rendering_id) AS recordCount
FROM
rendering_request rr, rendering_log rl
WHERE
rl.rendering_id = rr.rendering_id
AND rl.status = 'pending' AND
rl.log_id = (
SELECT rl1.log_id
FROM rendering_log rl1
WHERE
rl.rendering_id = rl1.rendering_id AND
rl1.status = 'pending'
AND rl1.log_id = (
SELECT rl2.log_id
FROM rendering_log rl2
WHERE rl1.rendering_id = rl2.rendering_id AND rl2.status!='noaction'
ORDER BY rl2.log_id DESC LIMIT 1
)
ORDER BY rl1.log_id DESC
LIMIT 1
)
例如
rendering_id=1
由具有多個日誌
status=noaction
status=noaction
status=pending
和
rendering_id=2
由具有多個日誌
status=noaction
status=assigned
status=noaction
status=pending
當我們運行這個查詢時,它應該顯示count=1
,因爲只有rendering_id=1
是我們想要的記錄。
眼下該查詢已停止工作,並掛在MySQL服務器
嗯,謝謝你的提示,我試圖運行。現在它給我'[Err] 1054 - 'on子句'中的未知列'rl1.log_id' –
:)好吧我做到了,我已經將子查詢部分'... MAX(log_id)更新爲log_id。 ..'並且它返回了我2236個結果以1秒爲單位。我仍然不確定這個數字是否正確。 –