Bastien Koert wrote:
On Wed, Feb 4, 2009 at 4:33 PM, Chris <[email protected] <mailto:[email protected]>> wrote:Solution 2: SELECT r.reg_id, r.date_registered, r.old_record, if(r.ghost_record!=0, (SELECT CONCAT(people.last_name, ', ', people.first_name) FROM people, registrants WHERE people.instance_id=12 and people.person_id=registrants.person_id AND registrants.reg_id=r.ghost_record), 'y') as registered_by_name FROM registrants r WHERE r.org_id=12 AND r.reg_status=0 AND r.reg_id=r.person_id this way subquery will be executed "everytime", but I have everything on one place? Because it has to evaluate the whole 'if' statement (including your subquery) for each row in the result set. Best place to ask would be on the mysql mailing list: http://lists.mysql.com/
try a case when then statement.
Same problem - the case is evaluated (including the subquery) with every row in the result.
It could be done as a join I guess but I'll leave that as an exercise for the OP.
-- Postgresql & php tutorials http://www.designmagick.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

