Tricky Model association

I’ve got a tricky (at least for me) model association I need to
establish. Here are the two tables

Appointment
id, name, start(datetime), stop(datetime)
1, apt1, 1/4/2011 14:00, 1/4/2011 14:30
Schedule
id, name, start(datetime), stop(datetime)
1, sch1, 1/4/2011 08:00, 1/4/2011 17:00

I need to associate a schedule with an appointment. So each
appointment will have_one schedule. The assocation get’s created by
virtue of the start/stop of the appointment being in between the start/
stop of a schedule.

This sql will return the record

select *
from apts a
inner join schedules s on s.start <= a.start and s.stop >= a.stop

So what do I do?
class Apt < ActiveRecord::Base
has_one :schedule, something here
end

:finder_sql => “sql”