将Zend_Db_Table
和Zend_Db_Table_Select
与Zend_Db_Adapter_Pdo_Pgsql
一起使用时,我在使用选择查询时出现问题:
$rowset = $db->select()->from(array('a'=>'tablea'))
->columns(array('a.a'))
->join(array('b'=>'tableb'),'b.id = a.id', array('b.a'))
->query()->fetchAll();
行集的预期内容:(主要是键)
$rowset['a.a'] = "something";
$rowset['b.a'] = "somethingElse";
在$rowset
的实际内容中,只有$rowset['a']
存在,无法区分已连接的表格。
对此有何解决方案?
刚刚做一个
$q = "SELECT * FROM tablea AS a
JOIN tableb AS b ON a.key = b.fkey";
$dbtable->getAdapter()->fetchAll($q);
我也得不到我的期望。
答案 0 :(得分:0)
为了在匹配列名称时区分表a和b,您需要对表b中的列进行别名。然后,联接看起来像:
->join(array('b' => 'tableb'), 'a.id = b.id', array('a_from_b' => 'b.a'))
请注意,'ON'条件应该是字符串,而不是数组。