SELECT * FROM (
SELECT t1.eventId,t1.start_date,t1.end_date, COUNT(*) pos FROM events t1
LEFT JOIN events t2 ON t1.start_date = t2.start_date AND t1.eventId <= t2.eventId
WHERE t1.start_date BETWEEN '2012-12-18' AND '2012-12-24'
GROUP BY t1.eventId,t1.start_date
ORDER BY t1.start_date,pos ASC
) t
WHERE pos <= 3;
開始日 2012-12-21 と 2012-12-24 が存在しない理由
start_date が存在しない場合は、null または空の値が必要です
注:DBには21と24のレコードはありませんが、結果に空の値が必要です