即時嘗試使用CodeIgniter和Datatables.net生成報告。MySQL中的緩慢子查詢
現在我正在嘗試關閉的工作量(其人力資源系統)。我曾經查詢過所有的工作,並在PHP中做了一個foreach,然後做了calcs。
因爲我想使用Datatables的所有功能(特別排序)即時嘗試在mySQL中做所有的計算。
問題是:第二個子查詢非常非常慢。
SELECT
jobs.jobs_id, clients.nome_fantasia, concat_ws(' ', user_profiles.first_name, user_profiles.last_name) as fullname,
jobs.titulo_vaga, jobs.qtd_vagas, company.name as nome_company, jobs_status.name as status_name, DATEDIFF(NOW(), jobs.data_abertura) as date_idade,
(select count(job_cv.jobs_id) from job_cv where job_cv.jobs_id = jobs.jobs_id) as qtd_int,
(select count(distinct job_cv.user_id) from job_cv_history join job_cv on job_cv.job_cv_id = job_cv_history.job_cv_id where job_cv_history.status = '11' and job_cv.jobs_id = jobs.jobs_id) as fechadas
FROM (jobs)
JOIN clients ON lients.clients_id=jobs.clients_idJOIN user_profiles ON jobs.consultor_id=user_profiles.user_id
JOIN jobs_status ON jobs.status=jobs_status.jobs_status_id
JOIN company ON jobs.company_id=company.company_id
LIMIT 50
有人能幫幫我嗎?如果需要,我可以提供更多信息。
UPDATE
的主意,使用JOIN改爲選擇工作與第一子查詢,但與第二個不是,有沒有辦法通過一個「變量」子查詢中使用?像當前的jobs_id一樣?
再次更新
該行正常工作本身。但在subquery裏面用worng值需要一分鐘左右
SELECT job_cv.jobs_id,count(distinct job_cv.user_id) AS fechadas
FROM job_cv_history
JOIN job_cv
ON job_cv.job_cv_id = job_cv_history.job_cv_id
WHERE job_cv_history.status = '11'
GROUP BY job_cv.jobs_id
Tkz ...我想出了這個工作:http://pastebin.com/rzjAW7Sj firts加入qtd是好的...但第二...我只得到fechadas的總數...我需要每個工作的總數..任何ideias請? – Roberto