0
Я получаю проблему синтаксиса sql в подзапросе zf2. Я не знаю, что случилось с моим запросом. мой запрос отлично работает на MySQLzf2 - проблема с подзапросом в модели
в Зенд он показывает ошибка синтаксиса
SQLQuery
SELECT (SELECT role_name FROM roles WHERE role_id=(SELECT role_id FROM users WHERE id=a.user_id)) AS role,`a`.consultant_id,`a`.*, `c`.`name` AS `name`, `b`.`name` AS `branchname`, `u`.`name` AS `consultantname`, `u`.`role_id` AS `role_id`, `r`.`role_name` AS `rolename`
FROM `agents` AS `a`
LEFT JOIN `countries` AS `c` ON `c`.`code` = `a`.`country`
LEFT JOIN `branches` AS `b` ON `b`.`id` = `a`.`branch_id`
INNER JOIN `users` AS `u` ON `u`.`id` = `a`.`consultant_id`
INNER JOIN `roles` AS `r` ON `r`.`role_id` = `u`.`role_id`
WHERE r.`role_id` IN(5,12,21,25,43,44) AND a.branch_id=63 AND a.consultant_id =2834
ORDER BY `a`.`id` ASC
Zend Query
$rolesSelect = new Select();
$rolesSelect->from(array('r1' => 'roles'));
$rolesSelect->columns(array('ro_name'=>'role_name'));
$rolesSelect->join(array('u1' =>'users'), 'u1.role_id = r1.role_id', array(''));
$rolesSelect->join(array('a1' =>'agents'), 'u1.id = a1.user_id', array(''));
$select = new Select();
$select->from(array('a' => 'agents'));
$select->columns(array('*','role_name1' => new Expression('?', array($rolesSelect))));
$select->where($conditions);
$select->join(array('c' =>'countries'), 'c.code = a.country', array('name'),'left');
$select->join(array('b' =>'branches'), 'b.id = a.branch_id', array('branchname'=>'name'),'left');
$select->join(array('u' =>'users'), 'u.id = a.consultant_id', array('consultantname'=>'name','role_id'=>'role_id'));
$select->join(array('r' =>'roles'), 'r.role_id = u.role_id', array(''));
$select->order('a.id ASC');
$resultSet = $this->tableGateway->selectWith($select);
echo $conditions."<pre>";
print_r($resultSet);
die;
return $resultSet->buffer();
Заявление не может быть выполнено (42000 - 1064 - У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'AS' 'FROM' agents' AS 'a' LEFT JOIN 'countries'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' .'cou 'в строке 1) –
Я уверен, что мой mysqlquery работает нормально, но в zend я не могу поместиться –
да, я пишу в файле модели –