AFAIK, आप अपना डेटा पिवट कर रहे हैं और मुझे लगता है कि max(case ...) ... group by
का उपयोग कर रहे हैं डेटा पिवट करने में अच्छा प्रदर्शन है।
मैं आपको इसके बजाय इस क्वेरी का उपयोग करने का सुझाव दे सकता हूं:
select event_date
, max(case when r.class = 40 then name end) `Class 40 Winner`
, max(case when r.class = 30 then name end) `Class 30 Winner`
from events e
left join results r on e.event_id = r.result_event and r.position = 1
group by event_date;