sql >> Database >  >> RDS >> Mysql

Ontbrekende resultaten retourneren van veel naar veel tabellen

Let wel, ik ben niet bekend met Zend-Framework, dus het kan zijn dat je dit een beetje moet aanpassen. Maar u moet Brands . gebruiken als de primaire/eerste tabel, zodat deze eerst alle records van die tabel kan ophalen en deze vervolgens kan matchen met de rest van de tabellen.

public function getUserBrands($userId) {
    $select = new Select();
    $select->from(array('b' => 'brands'));
    $select->join(array('bu' => $this->table), 'bu.brandId = b.id', array('id','name'),Select::JOIN_LEFT);
    $select->join(array('u' => 'users'), 'u.id = bu.userId', array('id','username'),Select::JOIN_LEFT);
    $where = new Where();
    $where->equalTo("bu.userId",$userId);
    $select->where($where);
    return $this->branduserTable->selectWith($select)->toArray();
}



  1. Slaapstand postgresql/hsqldb TEXT kolom incompatibiliteitsprobleem

  2. Tekenreeks opmaken met meerdere parameters zodat MySQL ze kan verwerken

  3. Vermijd CHAR-bijsnijden bij gebruik van eclipselink

  4. MySQL:een nieuwe tabel maken met informatie uit een query