Sorry... trying to get a lot of info out without a lot of text...

  lkup_info is populated when data is loaded, and data is loaded
daily... so MAX(date) would work fine with sub selects, which
don't exist... though I have an auto increment field as well.

  I guess I will just have to keep a secondary table that does
a replace on the did... simple enough, just wondoering if it
could be done otherwise...

  I have long wished for a way to bring a certain row from a 
group by to the top based on some criterion...

                                Thanks anyway...

On Thu, Jan 24, 2002 at 04:02:55PM -0500, Erv Young wrote:
> Sounds like you have a table (lkup_info) of load dates (date), in which you 
> record fileid (did) and date.  Sounds like you do not have a separate table 
> of fileids.  I'm assuming that the lkup_info table is updated synchronously 
> with the loading of each file that the table is recording, though you 
> didn't say that.
> 
> If this table also had an auto-increment numeric primary key 
> (lkup_info_id), and if we had a MySQL version that is still only a gleam in 
> Monty's eye, it would be a piece of cake:
> 
> SELECT * FROM lkup_info a
>   WHERE a.lkup_info_id IN
>          (SELECT MAX(lkup_info_id)
>             FROM lkup_info b
>            GROUP BY did)
> 
> In the absence of sub-selects, you will need to do the subsidiary select as 
> a preliminary step, INTO a temporary table.  Then do the main select.
> 
> The pain of modifying the query to work without an auto-increment primary 
> key, and of waiting (and waiting, and waiting) for it to run, will be far 
> worse than the pain of adding an auto-increment primary key if one is not 
> already there.
> 
> Of course, if the table is not being updated synchronously with loading of 
> the files, all this is probably a pipe dream, for which I apologize.
> 
> --Erv
> 
> At 02:06 PM 1/24/2002 -0500, Anthony R. J. Ball wrote:
> >   Is it possible to select only the latest entries
> >from a table?
> >
> >   For instance I have a table of datasets that get
> >loaded each day. I want to find the latest date that
> >each dataset was loaded.
> >
> >   I thought maybe a join against itself might be the
> >answer, but this doesn't seem to work :)
> >
> >SELECT B.*
> >from lkup_info AS A, lkup_info AS B
> >WHERE A.did = B.did AND MAX(A.date) = B.date GROUP BY A.did;
> >
> >   But that is basically what I want...
> >
> >   Is this possible, or do I need to maintain a
> >table for latest updates?
> 
> 
> ---------------------------------------------------------------------
> 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
> 

-- 
 ___  __  __    __  _  _  ____    _  _  ____  ____ 
/ __)(  )(  )  /__\( \/ )( ___)  ( \( )( ___)(_  _)
\__ \ )(__)(  /(__)\\  /  )__)    )  (  )__)   )(  
(___/(______)(__)(__)\/  (____)()(_)\_)(____) (__) 
"Tolerance is the virtue of the man without convictions" - Chesterton


---------------------------------------------------------------------
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

Reply via email to