sql >> Base de Datos >  >> RDS >> Mysql

LEFT JOIN en ZF2 usando TableGateway

Agregando a la respuesta de @ samsonasik y abordando los problemas en sus comentarios. No podrá obtener los valores combinados de lo que se devuelve de esa declaración. Esa declaración devuelve el objeto modelo que no tendrá las filas unidas. Deberá ejecutarlo como SQL en un nivel que lo preparará como SQL sin formato y le devolverá cada fila resultante como una matriz en lugar de un 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']);
}