Zend Framework 2では、異なるデータベーステーブルを結合するときに、間違ったエスケープを避けるために\Zend\Db\Sql\TableIdentifier
クラスを使用する必要があります。Zend Framework 2 - 異なるデータベースとスキーマのテーブルを結合する
私は、このようにしない場合:これは私が行うことができます。このような状況を解決するために"database2.table2"
を引用し、誤っが発生し
SELECT [..] FROM "table" as "A" INNER JOIN "database2.table2" ON [...]
:
$select->join(['B' => 'database2.table2'], 'A.id = B.id');
次のようにレンダリングされます
$tbl2 = new \Zend\Db\Sql\TableIdentifier('table2', 'database2');
$select->join(['B' => $tbl2], 'A.id = B.id');
このようにすれば、引用は正しいです。"database2"."table2"
しかし、データベースとスキーマを指定する必要がある場合はどうすればよいですか? (MS SQLサーバで例えば)
所望の結果は、スキーマはあなたのZend \ Dbの\アダプタ\アダプタ( 'データベース' => 'のSchemaName')で指定され"database2"."dbo"."table2"
でそれを使用する必要が答えてくれてありがとうしかし、私は2つの異なるアダプタから2つのテーブルを結合することはできません知っているものから、または私が間違っていますか? – corros