3

MySQL から PostgreSQL にデータベースを移行する過程にあり、CakePHP を使用してデータにアクセスしています。通常のモデル メソッド (find、delete、create など) は期待どおりに動作しているように見えますが、query メソッドを使用してカスタム クエリを実行すると、期待どおりに結果の配列が読み込まれないようです。

たとえば、MySQL をデータベースとして CakePHP を実行する場合、次のコードを実行します。

$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 に答える