我在循環中使用此查詢並希望使其更快。SQL - 爲迭代優化查詢
SELECT * FROM job_activity as ja
INNER JOIN job as j
ON ja.job_id = j.id
WHERE j.name = 'name'
AND ja.avg_runtime <> 0
AND ja.id = (SELECT MAX(id) FROM job_activity
WHERE job_id = ja.job_id and avg_runtime <> 0);
使用MS SQL 11 我使用作業的ID時等於job.name會找到我要的job_activity表作業的avg_runtime連接兩個表工作,job_activity,但這樣做了大數據集。會使用'與'查詢更好嗎?
表佈局
job
****
id
name
job_activity
*************
id
job_id
avg_runtime
爲什麼你不能做到這一點與TOP 1查詢? Id列是否是job_activity中的唯一列? – 2014-09-26 16:53:28
我有查詢的靜態job.name。因此,我使用job.name來查找job.id,我使用job.id查找job.activity表中的job.id所有作業。然後,對於那些相應的job.activity.id(這是job.activity表的主鍵),我找到了最大值,因爲這是作業的最後一個條目。我採取了那一行的avg_runtime。 – user3590149 2014-09-26 17:20:59