Подзапрос при соединении не подходит

0

Hiii, В настоящее время у меня проблема. Я не вижу возможности удалить кавычки, сгенерированные zend, при генерации запроса подзапроса, который помещается в операцию соединения. $ SelectInnerQuery создает дополнительный запрос, который используется в операции объединения, это называется внутренней таблицей. Это используется для соединения с таблицей ответов. Для окончательного запроса используется $select. Пожалуйста, помогите мне в этом...

$selectInnerQuery= $sql->select()->from(array('answer' => 'tblanswer'))->columns(array('aid'        =>  new Expression('answer.aid'),'count' => new Expression('count(answer.qid)')));


$innerstatement = $sql->getSqlStringForSqlObject($selectInnerQuery);

$select = $sql->select()->from(array('answer' => 'tblanswer'))->columns($fieldsToSelect);
$select->join(array('inneranswer' =>  $innerstatement), 'inneranswer.aid = answer.aid', array(),'inner');

Запрос, который я получаю из zend,

SELECT `answer`.* FROM `tblanswer` AS `answer` 
inner join `SELECT answer.aid AS ``aid``, count(answer.qid) AS ``count`` FROM ``tblanswer`` AS ``answer`` WHERE answer.qid !=0 GROUP BY answer.qid, answer.baid` AS `inneranswer` ON `inneranswer`.`aid` = `answer`.`aid` 

Я пробовал новое выражение, но он не работает в операции соединения.

Теги:
zend-framework2

2 ответа

0

Произошла одна и та же проблема. В массиве Join table должен быть выбран объект Select вместо выбранного запроса.

$selectObj = $sql->select()->from(array('answer' => 'tblanswer'))->columns(array('aid'        =>  new Expression('answer.aid'),'count' => new Expression('count(answer.qid)')));
$select = $sql->select()->from(array('answer' => 'tblanswer'))->columns($fieldsToSelect);
$select->join(array('inneranswer' =>  $selectObj), 'inneranswer.aid = answer.aid', array(),'inner');
0

Когда вы указываете свое $innerstatement при присоединении, укажите как "{$ innerstatement}" , это может решить вашу проблему с кавычками, а также проверить, что ваш запрос внутреннего запроса возвращает sql-запрос или он возвращается как объект.

  • 0
    Я пробовал это, но результат тот же.
  • 0
    Можете ли вы обновить свой новый отформатированный запрос, который вы получаете сейчас?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню