View Single Post
Old 07-24-2007, 12:54 PM   #3 (permalink)
ratbastid
Darth Papa

 
ratbastid's Avatar
 
Join Date: Apr 2003
Location: Yonder
The simple solution is to put a "LIMIT 1" on the end of that statement. You lose some efficiency, but you get exactly your results. I wouldn't put that anywhere it's liable to be run more than once a second, or anywhere transaction volume is high.

If you can do sub-selects, you can:
SELECT ... FROM ps_employment WHERE effdt = (SELECT MAX(effdt) FROM ps_employment);

That's the elegant solution. But not all databases (I'm looking at you, older versions of MySQL) support subselects.

Bear in mind that the sub-select option isn't guaranteed to get you just one record unless your effdt field is defined UNIQUE (or guaranteed unique in code).
ratbastid is offline   Reply With Quote