PostgreSQL中自定义查询结果的CakePHP基于模型的数组填充

时间:2012-07-19 16:54:03

标签: cakephp

我正在将数据库从MySQL迁移到PostgreSQL,并且正在使用CakePHP来访问数据。正常的模型方法(查找,删除,创建等)似乎按预期工作,但是当我使用查询方法运行自定义查询时,它似乎不会填充结果数组我期望的结果。

例如,当使用CakePHP以MySQL作为数据库运行时,此代码:

$results = $this->Table1->query('SELECT Table1.*, Table2.* FROM Table1 LEFT JOIN Table2 USING (Field)');

生成以下数组

array(
   array('Table1' => array(<Table1Result1>), 'Table2' => array(<Table2Result1>))
   array('Table1' => array(<Table1Result2>), 'Table2' => array(<Table2Result2>))
   ...
   array('Table1' => array(<Table1ResultN>), 'Table2' => array(<Table2ResultN>))       
)

当我使用PostgreSQL作为数据库运行类似的查询时,我得到以下数组:

array(
   array(0 => array(<Table1and2Result1Combined>))
   array(0 => array(<Table1and2Result2Combined>))
   ...
   array(0 => array(<Table1and2ResultNCombined>))
)

有没有办法让PostgreSQL结果以与MySQL相同的方式返回?

1 个答案:

答案 0 :(得分:1)

你必须像这样构建你的查询:

SELECT
  table1.field1 AS "Table1__field1",
  table1.field2 AS "Table1__field2"
FROM
  table1
;
相关问题