Hi, The following snippet of code is what I intuitively would have thought would solve the requirement of subqueries:
$query = Engine::$DB->select(); $query->from( array( 'L' => 'sales_opportunities' ), array( "L.*", "assigned_to_name" => Engine::$DB->select() ->from( array( "U" => "users" ) ) ->columns( "CONCAT( U.first_name, ' ', U.last_name )" ) ->where( "U.id = L.assigned_to" ), "account_name" => Engine::$DB->select() ->from( array( "A" => 'sales_accounts' ) ) ->columns( "A.name" ) ->where( "A.id = L.sales_account_id" ) ) ); The goal is to hammer out a query such as: SELECT L.*, (SELECT CONCAT( U.first_name, ' ', U.last_name ) FROM users U WHERE U.id = L.assigned_to ) AS assigned_to_name, (SELECT A.name FROM sales_accounts A WHERE A.id = L.sales_account_id ) AS account_name FROM sales_opportunities L WHERE .... The snippet of code above, however, generates invalid SQL: SELECT `L`.*, `L`.`SELECT ``U``.*, CONCAT( U.first_name, ' ', U.last_name ) FROM ``users`` AS ``U`` WHERE (U.id = L.assigned_to)` AS `assigned_to_name`, `L`.`SELECT ``A``.*, ``A``.``name`` FROM ``sales_accounts`` AS ``A`` WHERE (A.id = L.sales_account_id)` AS `account_name` FROM `sales_opportunities` AS `L` Double quoting, not respecting subqueries by prefixing them with the table alias, and not adding parentheses where necessary (adding the latter should be a given when adding select expressions?). Am I going against the grain here? ;) Thanks for the help. Alex -- View this message in context: http://www.nabble.com/Subquery-Generation-tp21296085p21296085.html Sent from the Zend Framework mailing list archive at Nabble.com.