Duncan Hill <[EMAIL PROTECTED]> wrote: > I have a table that has data that looks like: > +----+---------------------+-------+---------+ > | id | recdate | mount | perused | > +----+---------------------+-------+---------+ > | 1 | 2004-05-20 10:46:12 | QUAR | 80 | > | 2 | 2004-05-20 11:05:11 | QUAR | 99 | > | 2 | 2004-05-20 11:33:27 | ROOT | 99 | > | 2 | 2004-05-20 11:33:34 | QUAR | 88 | > +----+---------------------+-------+---------+ > > I'm trying to work out a query that would list the latest entry per id, per > mount, and not having much luck. In this case, the result would be > 1,QUAR,80 > 2,ROOT,99 > 2,QUAR,88 > > (there are a few other fields to be displayed, but I'll take a base query and > adapt). > > Can anyone give me a shove in the right direction ? >
>From version 4.1 subquery helps you to get result using one query. In earlier version you can use temporary table, for example: CREATE TEMPORARY TABLE tmp SELECT id, MAX(recdate) as recdate, mount FROM tbl GROUP BY id, mount; SELECT tbl.id, tbl.mount, tbl.perused FROM tbl, tmp WHERE tbl.id=tmp.id AND tbl.recdate=tmp.recdate; Some info you can also find in the manual at: http://dev.mysql.com/doc/mysql/en/example-Maximum-column-group-row.html -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]