我正在尝试使用Zend_Db_Table构建一个复杂的(well ...)查询,我将需要使用额外的表连接原始表,并使用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(...)
有什么想法吗?欢呼声。
答案 0 :(得分:1)
您不应重做->from()
调用,这意味着您在查询中添加了一个新表。
相反,您应该使用包含Zend_Db_expr的 ->where()
->columns()
调用。
编辑:抱歉错误。