I don't know if i understood you very well, but here's a try.. mysql> select * from Classes; +----+---------+ | ID | Name | +----+---------+ | 1 | XO-312 | | 2 | PA-211a | | 3 | XUL-001 | +----+---------+ 3 rows in set (0.00 sec)
mysql> select * from Workshops order by ClassID,Date; +----+---------+------------+ | ID | ClassID | Date | +----+---------+------------+ | 1 | 1 | 2002-05-15 | | 8 | 1 | 2002-09-22 | | 7 | 1 | 2002-10-29 | | 2 | 1 | 2003-02-20 | | 3 | 2 | 2002-05-15 | | 9 | 2 | 2003-01-01 | | 4 | 2 | 2003-02-17 | | 5 | 3 | 2002-05-15 | | 10 | 3 | 2002-12-16 | | 6 | 3 | 2003-01-01 | +----+---------+------------+ 10 rows in set (0.00 sec) mysql> select ClassID, MIN(Date) min, MAX(Date) max, Classes.Name -> FROM Workshops LEFT JOIN Classes ON (ClassID=Classes.ID) -> GROUP BY ClassID HAVING now() BETWEEN min and max; +---------+------------+------------+---------+ | ClassID | min | max | Name | +---------+------------+------------+---------+ | 1 | 2002-05-15 | 2003-02-20 | XO-312 | | 2 | 2002-05-15 | 2003-02-17 | PA-211a | +---------+------------+------------+---------+ 2 rows in set (0.00 sec) Hope this helps... On Sat, 2003-01-11 at 16:25, Steve Lefevre wrote: > First of, thanks to all who replied to my questions earlier! > > Now I have another problem. I have a table of Classes and Workshops. Each > Class has a number of workshops. Each workshop has a date. > > I have a query that gives me the date range of a class - the min and max > dates of its workshops. > > "select ClassID, MIN(Date), MAX(Date), Classes.Name FROM Workshops LEFT JOIN > Classes ON ClassID=Classes.ID GROUP BY ClassID;" > > gives me: > > +---------+------------+------------+---------+ > | ClassID | MIN(Date) | MAX(Date) | Name | > +---------+------------+------------+---------+ > | 56 | 2002-05-15 | 2002-12-29 | XO-312 | > | 408 | 2002-05-15 | 2002-05-17 | PA-211a | > | 600 | 2002-05-15 | 2002-05-16 | XUL-001 | > +---------+------------+------------+---------+ > 3 rows in set (0.00 sec) > > Now I want to get *active* classes - WHERE Now() Between MIN(Date) and > Max(Date) -- but I can't figure out where to put the friggin clause. I get > errors all over the place. Can I use the between function with a group by > function? > > select ClassID, MIN(Date), MAX(Date), Classes.Name > FROM Workshops > LEFT JOIN Classes ON ClassID=Classes.ID > WHERE Now() BETWEEN MIN(Date) and MAX(Date) > GROUP BY ClassID; > > What am I doing wrong? > > > > --------------------------------------------------------------------- > Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > > To request this thread, e-mail <[EMAIL PROTECTED]> > To unsubscribe, e-mail <[EMAIL PROTECTED]> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > -- Diana Soares --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php