Zend_Db_Table,JOIN和mysql表达式在一个查询中?

时间:2011-02-22 10:12:10

标签: mysql join zend-db-table

我正在尝试使用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(...)

有什么想法吗?欢呼声。

1 个答案:

答案 0 :(得分:1)

您不应重做->from()调用,这意味着您在查询中添加了一个新表。 相反,您应该使用包含Zend_Db_expr的 ->where() ->columns()调用。

编辑:抱歉错误。