Mysql
 sql >> Base de données >  >> RDS >> Mysql

LEFT JOIN dans ZF2 en utilisant TableGateway

Ajout à la réponse de @ samsonasik et résolution des problèmes dans ses commentaires. Vous ne pourrez pas extraire les valeurs jointes de ce qui est renvoyé par cette instruction. Cette instruction renvoie l'objet modèle qui n'aura pas les lignes jointes. Vous devrez l'exécuter en tant que SQL à un niveau qui le préparera en tant que SQL brut et vous renverra chaque ligne résultante sous la forme d'un tableau plutôt que d'un objet :

$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']);
}