जॉइन करके आप कुछ इस तरह कर सकते हैं:
select * from table a
inner join (
select id,
max(
if(`date` <= __LOWERLIMIT__ ,`date`, 0)
) as min_date,
min(
if(`date` >= __UPPERLIMIT__ , `date`, UNIX_TIMESTAMP())
) as max_date
from table
where id = __ID__
group by id
) range on
range.id = a.id and
a.`date` between min_date and max_date;
मैं एक MySQL विशेषज्ञ नहीं हूं, इसलिए अगर थोड़ा सा सिंटैक्स ट्विकिंग की आवश्यकता है तो क्षमा करें।
अपडेट करें: ओपी को यह बहुत अच्छा समाधान भी मिला। ।