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