Assuming you are using a version of a
database that can support sub-queries (MySQL 4.1 and up, Postgresql (all
reasonably current versions, any other robust RDBMS) you can do the query like
this:
$sSql = "SELECT * FROM crm_events WHERE crm_leads_id IN (SELECT id
FROM crm_leads) AND follow_up_action!='' ORDER BY follow_up_date asc limit
1"
Not sure what your follow_up_action !=” is suppose to be doing but if
the rest works for you that should give you what you want.
Sherwin Harris
Web Developer
Brigham Young
University
From:
pgsql-php-owner@xxxxxxxxxxxxxx [mailto:pgsql-php-owner@xxxxxxxxxxxxxx] On Behalf Of Andy Dunlop
Sent: Wednesday, May 03, 2006 3:13
AM
To: pgsql-php@xxxxxxxxxxxxxx
Subject: [PHP] Select and order by
question
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?
Any help appreciated
Thanks
Andy Dunlop
www.infocus.co.za
+27 21 532 0335 office
+27 82 770 8749 mobile
|