On Sat, 2005-03-12 at 00:13 -0800, Benjamin Smith wrote: > Given the tables defined below, what's the easiest way to check for schedule > conflicts? > > So far, the only way I've come up with is to create a huge, multi-dimensional > array in PHP, with a data element for every minute of all time taken up by > all events, and then check for any of these minutes to be set as I go through > all the records. (ugh!) > > But, how could I do this in the database? > > But I'd like to see something like > "select count(*) FROM events, sched > WHERE sched.date=$date > AND events.id=sched.events_id > ... > GROUP BY date, start<finish and finish<start > HAVING count(*) >1 " > > And here's where I get stumped. You can't group by start or end because we > need to check if they OVERLAP any other records on the same date. > > Ideas?
use the OVERLAPS operator ? http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html gnari ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match