Zend framework2 ZF2:DB\AbstractTableGateway:如何使用联接?

Zend framework2 ZF2:DB\AbstractTableGateway:如何使用联接?,zend-framework2,Zend Framework2,我是ZF的新手,下面有一个代码。我尝试获取自定义列并加入SQLSelect,但失败了。 我试图使用搜索,但没有找到结果。 请举例说明如何执行更复杂的查询。 谢谢 由于您使用的是tableGateway,因此必须获得Sql实例:$this->getSql 使用该实例,您将创建Select的实例,该实例将允许您执行连接: $sql = $this->getSql(); $select = $sql->select(); $select->join('TableNameToJoin'

我是ZF的新手,下面有一个代码。我尝试获取自定义列并加入SQLSelect,但失败了。 我试图使用搜索,但没有找到结果。 请举例说明如何执行更复杂的查询。 谢谢


由于您使用的是tableGateway,因此必须获得Sql实例:$this->getSql

使用该实例,您将创建Select的实例,该实例将允许您执行连接:

$sql = $this->getSql();
$select = $sql->select();
$select->join('TableNameToJoin', 'MainColumnA = JoinColumnA');
然后,要执行查询,请在tableGateway上调用selectWith:

$this->selectWith($select);
如果您希望进一步自定义联接,您可以再传递两个ARUMENTS:

要选择的列的数组 您希望执行的联接类型,例如左联接 您还可以通过传递数组作为表名,将别名添加到要加入的表中,数组的键为别名,值为表名

$select->join(['Alias' => 'TableNameToJoin'], 'MainColumnA = Alias.JoinColumnA', ['ColumnA', 'ColumnB'], $select::JOIN_LEFT);

由于您使用的是tableGateway,因此必须获得Sql实例:$this->getSql

使用该实例,您将创建Select的实例,该实例将允许您执行连接:

$sql = $this->getSql();
$select = $sql->select();
$select->join('TableNameToJoin', 'MainColumnA = JoinColumnA');
然后,要执行查询,请在tableGateway上调用selectWith:

$this->selectWith($select);
如果您希望进一步自定义联接,您可以再传递两个ARUMENTS:

要选择的列的数组 您希望执行的联接类型,例如左联接 您还可以通过传递数组作为表名,将别名添加到要加入的表中,数组的键为别名,值为表名

$select->join(['Alias' => 'TableNameToJoin'], 'MainColumnA = Alias.JoinColumnA', ['ColumnA', 'ColumnB'], $select::JOIN_LEFT);

我的问题是,如何为表中的基main列提供别名。由于如果两个表具有相同的名称,则需要别名,而且在大多数情况下,大多数联接都是这样,所以问题是,如何为基本MainColumnA表提供别名。因为如果两个表具有相同的名称,则需要别名,并且在大多数情况下,大多数联接都需要别名