On 5/3/06, Andy Dunlop <andy@xxxxxxxxxxxxx> wrote:
Hi - I have the following code: //show table of current events needing action $sSql = "SELECT id FROM crm_leads "; $sLeads = pg_exec($conn,$sSql); for($e=0;$e<pg_numrows($sLeads);$e++){ $sSql = "SELECT * FROM crm_events WHERE crm_leads_id = ".pg_result($sLeads,$e,"id")." AND follow_up_action!='' ORDER BY follow_up_date asc limit 1"; $sRes = pg_exec($conn,$sSql); $sHits = pg_numrows($sRes); if($sHits!=0){ for($i=0;$i<$sHits;$i++){ // generate the display here } } crm_leads is a parent with many crm_events as it's children. This code gives me the correct set of rows. My problem is that I want only the last row from crm_events (as per limit 1) but I want those rows sorted by follow_up_date. I guess I need to have the whole query in one select statement? But how?
select * from crm_leads l, crm_events e where l.id=e.crm_leads_id and follow_up_action != '' ORDER BY follow_up_date ASC LIMIT 1; Make sure crm_events crm_leads_id has an index on id and cram_leads id.. -- Postgresql & php tutorials http://www.designmagick.com/