在Zend Framework 2中,當我想在不同的數據庫表格之間建立連接時,我必須使用\Zend\Db\Sql\TableIdentifier
類別來避免不正確的轉義。Zend Framework 2 - 在不同的數據庫和模式中連接表格
如果我這樣做:
$select->join(['B' => 'database2.table2'], 'A.id = B.id');
它呈現爲:
SELECT [..] FROM "table" as "A" INNER JOIN "database2.table2" ON [...]
這會導致不正確的引用"database2.table2"
爲了解決這種情況我可以這樣做:
$tbl2 = new \Zend\Db\Sql\TableIdentifier('table2', 'database2');
$select->join(['B' => $tbl2], 'A.id = B.id');
用這種方法引用是正確的"database2"."table2"
但是我該怎麼辦,如果我必須指定數據庫和架構? (例如,在MS SQL服務器)
期望的結果是"database2"."dbo"."table2"
謝謝你的答案,但是,從我知道你不能從兩個不同的適配器連接兩張表,或者我錯了嗎? – corros