为什么在UNION关键字查询中运行非常慢的mysql?用UNION关键字查询在mysql中运行速度非常慢
我已经使用UNION关键字创建了一个查询,但每次执行它时,显示输出都需要很长时间。
这是我使用的查询。
SELECT process_trained AS Training_Title,
org_party AS Organizing_Party,
duration AS Duration,
Concat(Date_format(sptrain_from, '%d-%b-%y'), " to ",
Date_format(sptrain_to, '%d-%b-%y'), "") AS SpecialTraining_Date,
trainor AS Trainor,
category AS Category,
training_type AS Training_Type,
train_id,
Date_format(cert_date, '%d-%b-%Y') AS Date_Certified,
Date_format(re_certdate, '%d-%b-%Y') AS Re_Certificaton,
remarks,
filename
FROM(SELECT *,
cert_date AS cdate
FROM tbldirtraining
UNION ALL
SELECT *,
sptrain_from
FROM tbldirtraining) jes
WHERE emp_id = '6555'
AND cdate <> ''
ORDER BY cdate;
是否有任何可能的方法可以帮助如何更快地运行此查询。
在此先感谢。
你能告诉执行计划? –
'tbldirtraining'中有多少行?另外,你为什么要把桌子与自己结合起来? – Sebas
@Sebas ...总而言之,在tbldirtraining中有2053行,正如你所看到的,上面的查询我使用了WHERE子句来指定查询显示的训练细节。所以身份证号码6555必须显示13行,因为他有13次训练,但是每次使用UNION或UNION ALL时,结果都是重复的行,所以不是13而是13,它变成了26,这就是为什么我把条件'WHERE cdate <>'' '其中cdate是我用于两个联合行的ALIAS。我将一个列合并到一个表中,这些列是日期列,并且它们必须同时排序。 –