Mysql 左连接多个表花费的时间太长,下面是查询。
执行此查询需要很长时间,是否有任何方法可以加快执行速度。执行需要1分钟以上。我花了很多时间来解决这个问题,但什么也没找到Mysql 左连接多个表花费的时间太长,下面是查询。,mysql,sql,left-join,Mysql,Sql,Left Join,执行此查询需要很长时间,是否有任何方法可以加快执行速度。执行需要1分钟以上。我花了很多时间来解决这个问题,但什么也没找到 只需使用提示,它将帮助查询按照您的需要执行。请点击此处: 创建索引 创建临时表以减少存储在内存中的数据量 还有,你真的需要不同的吗?distinct指令对表中的数据进行排序,这将显示所有内容 使用EXPLAIN找出需要索引的位置并将其添加到表中DISTINCT不是列上的函数,它是SELECT DISTINCT的一部分,并应用于整个选定行。跳过那些多余的括号,只需写选择不同的j
还有,你真的需要不同的吗?distinct指令对表中的数据进行排序,这将显示所有内容 使用EXPLAIN找出需要索引的位置并将其添加到表中
DISTINCT
不是列上的函数,它是SELECT DISTINCT
的一部分,并应用于整个选定行。跳过那些多余的括号,只需写选择不同的j.id,j.first\u name,…
即可使查询更清晰!
SELECT DISTINCT(j.id),
j.first_name,
j.middle_name,
j.last_name,
ald.email AS email_address,
j.photo_file,
j.unique_id,
el.title AS education_title, GROUP_CONCAT(DISTINCT(tjt.training_title) SEPARATOR ', ') AS training_title, CONCAT(j.vdc_municipality, ', ', d.district) AS district_name, GROUP_CONCAT(DISTINCT(tms.description) SEPARATOR ', ') AS description
FROM tbl_jobseeker j
LEFT JOIN district d ON j.district=d.district_id
LEFT JOIN zone z ON z.id=d.zone_id
LEFT JOIN tbl_jobseeker_training tjt ON
j.id=tjt.jobseeker_id
LEFT JOIN tbl_jobseeker_skill tjs ON
j.id=tjs.jobseeker_id
LEFT JOIN tbl_master_skills tms ON
tms.id=tjs.skill
LEFT JOIN tbl_jobseeker_education tjee ON
tjee.jobseeker_id=j.id
LEFT JOIN tbl_education_level tel ON
tel.id=tjee.education_degree
LEFT JOIN tbl_jobseeker_employment tje ON
tje.jobseeker_id=j.id
LEFT JOIN tbl_jobseeker_skilloccupationdetails tjso ON
tjso.jobseeker_id=j.id
LEFT JOIN tbl_education_level el ON tjso.high_degree=el.id
LEFT JOIN tbl_apply_this_job taj ON taj.jobseeker_id=j.id
LEFT JOIN tbl_vacancydetails tvd ON tvd.id=taj.job_id
LEFT JOIN applicant_login_detail ald ON
ald.applicant_id=j.id AND ald.type=1
WHERE j.share_resume=1 AND training_title IS NOT NULL