Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

LEFT JOIN no ZF2 usando TableGateway


Adicionando à resposta de @samsonasik e abordando os problemas em seus comentários. Você não poderá obter os valores unidos do que é retornado dessa instrução. Essa instrução retorna o objeto de modelo que não terá as linhas unidas. Você precisará executá-lo como SQL em um nível que o preparará como SQL bruto e retornará cada linha resultante como uma matriz em vez de um objeto:
$sqlSelect = $this->tableGateway->getSql()->select();
$sqlSelect->columns(array('column_name_yourtable'));
$sqlSelect->join('othertable', 'othertable.id = yourtable.id', array('column_name_othertable'), 'left');

$statement = $this->tableGateway->getSql()->prepareStatementForSqlObject($sqlSelect);
$resultSet = $statement->execute();
return $resultSet;

//then in your controller or view:

foreach($resultSet as $row){
    print_r($row['column_name_yourtable']);
    print_r($row['column_name_othertable']);
}