oops! - typing too fast for my own good. The fixed query should have been: SELECT DISTINCT E.Title, E.ID, max(C.DateAdded) as maxdate FROM Entries E, Comments C WHERE C.EntryID = E.ID GROUP BY E.Title, E.ID ORDER BY maxdate desc LIMIT 10
8-D Shawn [EMAIL PROTECTED] wrote on 08/17/2004 03:26:53 PM: > I don't think the engine is messing up here. I think you are getting > exactly what you asked for and I will explain why I think that. > > You are asking for 3 things from 2 tables: > Entries.ID > , Entries.Title > , Comments.DateAdded. > > If Entry #1 was called "My First Thread" and had 3 comments associated > with it dated '2004-07-04 08:00:00', '2004-07-04 08:05:00', and > '2004-07-04 08:10:00', you would get these three records back: > > (1, 'My First Thread', '2004-07-04 08:00:00') > ,(1, 'My First Thread', '2004-07-04 08:05:00') > ,(1, 'My First Thread', '2004-07-04 08:10:00') > > Why? because the dates are different.... the DISTINCT modifier looks at > ALL of the columns in the SELECT statement not just the first one or two. > So if there were a second Comment for the same entry that just happened to > have the exact same time '2004-07-04 08:00:00', the DISTINCT modifier > would eliminate that duplicate entry and you would still only get 3 > records back. > > What you wanted for a statement was: > > SELECT DISTINCT E.Title, E.ID, max(C.DateAdded) as maxdate > FROM Entries E, Comments C > WHERE C.EntryID = E.ID > GROUP BY E.Title, E.ID > ORDER BY C.DateAdded desc > LIMIT 10 > > This will show you the ten most recently updated Entries and the date of > their last update. > > Yours, > Shawn Green > Database Administrator > Unimin Corporation - Spruce Pine > > > Ron Gilbert <[EMAIL PROTECTED]> wrote on 08/17/2004 03:02:43 PM: > > > > > I am trying to run this query... > > > > select distinct E.Title, E.ID, C.DateAdded from > > Entries E, Comments C > > where C.EntryID = E.ID > > order by C.DateAdded desc > > limit 10 > > > > ...to get the last 10 entries that had comments added to them, but the > > DISTINCT is not returning distinct results. What I get is 10 entries > > that had the last 10 comments, but there are duplicates. For example, > > if entry "A" just had 3 comments added, it gets return as the first 3 > > results, not just once. I assume the DISTINCT is failing because of > > the ORDER. How should this be accomplished? I am running 3.23 > > > > Thanks, Ron > > > > > > -- > > MySQL General Mailing List > > For list archives: http://lists.mysql.com/mysql > > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > >