2011-11-04 44 views
3

所以我有这样的代码:Zend的分贝查询获取不良列

$db = new Zend_Db_Adapter_Pdo_Mysql($params); 
$sql = $db->select()->from(array("r" => "recc"), array("r_id" => "refID"))->joinLeft(array("c" => "comment"), "r.refID = c.refID"); 
$results = $db->fetchAll($sql); 
print_r($results); 

这是应该翻译成此查询:

SELECT refID AS r_id FROM recc r LEFT JOIN comment c ON r.refID = c.refID 

这应该只返回单列R_ID,它当用mysql查询浏览器执行时确实返回那个单列

但是当你用db select和print_r执行结果时,除了r_id之外它还返回一个整体一堆字段在表注释中填充了空数据...

我做错了什么?我怎么得到的东西只返回单列按计划...

回答

2

我认为这是joinLeft()。您可能需要传递一个空数组()作为第三个参数。

$sql = $db->select() 
    ->from(array("r" => "recc"), array("r_id" => "refID")) 
    ->joinLeft(array("c" => "comment"), "r.refID = c.refID", array()); 
0
Try 
    print_r($results->toArray()); //Pure array format of result 
    array('') // If you dont want columns from a joining table you pass as the last parameter to the join  
array('*') //IF you want all the fields