2010-12-16 56 views
1

嗨,大家好,我相信这会变成是微不足道的,但我有以下代码Zend_Db_Table类如何选择所有不同值的特定列

 $response = $groupsmapper->getDbTable()->fetchAll(
     $groupsmapper->getDbTable()->select('group_area_residence') 
      ->distinct() 

这是为了让我的所有不同group_area_residence。但它会提取该组的所有列。

我正在使用zend_db_table btw。我该如何解决?

回答

2

根据在选择()的Zend/DB /表/ Abstract.php,它检查是否包含从部分的,而不是获取字段名

/** 
* Returns an instance of a Zend_Db_Table_Select object. 
* 
* @param bool $withFromPart Whether or not to include the from part of the select based on the table 
* @return Zend_Db_Table_Select 
*/ 
public function select($withFromPart = self::SELECT_WITHOUT_FROM_PART) 
{  
    require_once 'Zend/Db/Table/Select.php'; 
    $select = new Zend_Db_Table_Select($this); 
    if ($withFromPart == self::SELECT_WITH_FROM_PART) { 
     $select->from($this->info(self::NAME), Zend_Db_Table_Select::SQL_WILDCARD, $this->info(self::SCHEMA)); 
    }  
    return $select; 
} 

看看下面的代码段可以帮助(用所需的一个替换table_name)

$select = $groupsmapper->getDbTable() 
         ->select() 
         ->distinct() 
         ->from(array('table_name'), array('group_area_residence')); 

$response = $groupsmapper->getDbTable()->fetchAll($select); 
+0

感谢这个伴侣,它的工作。我想知道,虽然不是getDbTable应该获取表名?如果是这样,为什么我需要在from部分再添加一个。无论如何非常感谢。 – Napoleon 2010-12-17 11:00:42

相关问题