有没有真正的方法在zf2 select语句中进行跨数据库连接?我一直在寻找一种可行的方法来执行此操作,而不是试图编写完整的sql语句。
目前我的查询看起来有点像这样:
$selectDB2 = $this->getSelect('db2.tabledb2');
$selectDB = $this->getSelect('field1');
$selectDB->join(
['tabledb2' => $selectDB2],
'tabledb1.id = tabledb2.id',
[],
$select::JOIN_LEFT. ' '. $select::JOIN_OUTER
);
经过研究,我发现ZF2确实存在问题: https://github.com/zendframework/zf2/issues/4307
问题是zf2转义引用的方式,并列出了解决方案。但是,我理想情况下是一种不需要修改zf2库本身的方法,也不需要我编写一个冗长的sql语句(因为这不是这个查询范围的可行选项)。 / p>
答案 0 :(得分:1)
解决。 ZF2的TableIdentifier很好地解决了这个问题。这可以非常干净有效地解决所有问题。
$selectDB2 = $this->getSelect(new TableIdentifier('tabledb2', 'db2'));