我正在将数据库从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相同的方式返回?
答案 0 :(得分:1)
你必须像这样构建你的查询:
SELECT
table1.field1 AS "Table1__field1",
table1.field2 AS "Table1__field2"
FROM
table1
;