$budget_node = sfDoctrine::create() ->select('SUM(t.points) mysum, o.*') ->from('Orgnode o') ->innerJoin('o.Transactions t') ->where("o.id = ? AND t.created_at >= ? AND t.type = 'issue'") ->groupBy('o.id') ->execute(array($this->getId(),$budget->getStartDate()),Doctrine::FETCH_ARRAY) print_r($budget_node); you would see Array( 0=> array( o.field1 => value o.field2 => value o.Transactions => Array( 0=> array(mysum=>number) ) ) 1=>... )