3

我正在将数据库从 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 相同的方式返回?

4

1 回答 1

2

您必须像这样构建查询:

SELECT
  table1.field1 AS "Table1__field1",
  table1.field2 AS "Table1__field2"
FROM
  table1
;
于 2014-05-07T02:04:10.850 回答