Optimize Query in MySQL
The INDEX has been applied to every fields on ON-CLAUSE and AND-CLAUSE.


Please learn about "compound indexes".

Please provide EXPLAIN SELECT ....

AND wi_training.trn_deleted = 0
AND wi_training.trn_beneficiary_type = 2
AND wi_training.trn_start_date &lt;= '2015-06-30'


Begs for the compound INDEX(trn_beneficiary_type, trn_deleted, trn_start_date).

A compound index is almost always better than Using intersect(...).

(Style recommendation:  Don't prefix all columns with the same thing; it unnecessarily clutters the SQL.)