Zend_Db_Table, JOIN и MySQL выражения в одном запросе? - PullRequest
0 голосов
/ 22 февраля 2011

Я пытаюсь построить сложный (хорошо ...) запрос с помощью Zend_Db_Table, где мне обоим нужно будет объединить исходную таблицу с дополнительной таблицей и получить дополнительную информацию из исходной таблицы с помощью zend_db_expr.

Однако с самого начала дела идут плохо. То, что я это, это:

$select = $this->getDbTable()->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
                             ->setIntegrityCheck(false);

$select->from( $this->getDbTable() , array(
    '*' ,
    new Zend_Db_Expr('`end` IS NULL as isnull') ,
    new Zend_Db_Expr('`sold` IN (1,2,3) as issold') ,
) );                                     

Zend_Debug::dump( $select->__toString() );exit;

Что приводит к этому:

SELECT `items`.*, `items_2`.*, `end` IS NULL as isnull, `sold` IN (1,2,3) as issold FROM `items`
 INNER JOIN `items` AS `items_2`

Мне нужно, чтобы на данном этапе, прежде чем я выполню объединение с другой таблицей, будет

SELECT `items`.*, `end` IS NULL as isnull, `sold` IN (1,2,3) as issold FROM `items`

Мне не нужно внутреннее соединение с самим собой, мне просто нужно добавить эти два Zend_Db_Expr к вещам, которые должны быть выбраны, после чего я продолжу строить запрос с объединением и где и т. Д., Как

$select->joinLeft( ... )
->where(...)

Есть идеи? Приветствия.

1 Ответ

1 голос
/ 22 февраля 2011

Вы не должны повторять вызов ->from(), что означает, что вы должны добавить новую таблицу в запрос.Вместо этого вы должны просто использовать ->where()->columns() вызовов, содержащих вас Zend_Db_expr.

edit : извините за ошибку.

...