StrangeWill Posted September 27, 2008 Share Posted September 27, 2008 So I have a table that looks like this: +-------+---------+-----+-----+ | pageid| time | text| title | +-------+---------+-----+-----+ | 1 | 100 | text| old +-------+---------+-----+-----+ | 2 | 200 | text| none +-------+---------+-----+-----+ | 1 | 300 | text| new +-------+---------+-----+-----+ I do a group by pageID, but when I do an order by time, the last updated page is page two. Any ideas on how I can group it, get the title for the first entry, but the time for the most recent? Or should I store the most recent entry time? This is my SQL: SELECT * FROM `pages` GROUP BY `pages`.`pageid` ORDER BY `pages`.`time` DESC What I want returned: +-------+---------+-----+-----+ | pageid| time | text| title | +-------+---------+-----+-----+ | 1 | 300 | text| old +-------+---------+-----+-----+ | 2 | 200 | text| none +-------+---------+-----+-----+ What I get returned: +-------+---------+-----+-----+ | pageid| time | text| title | +-------+---------+-----+-----+ | 1 | 100 | text| old +-------+---------+-----+-----+ | 2 | 200 | text| none +-------+---------+-----+-----+ Quote Link to comment Share on other sites More sharing options...
Barand Posted September 27, 2008 Share Posted September 27, 2008 try SELECT pageid, MAX(time) as maxtime, text, title FROM pages GROUP BY pageid ORDER BY maxtime DESC Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.