sql >> Database teknologi >  >> RDS >> Mysql

Returnerer manglende resultater fra mange til mange tabel

Husk, jeg er ikke bekendt med Zend-Framework, så du skal muligvis tilpasse dette lidt. Men du skal bruge Brands som den primære/første tabel, så den kan få alle poster i den tabel først, og derefter matche den med resten af ​​tabellerne.

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. Begræns udenlandsk nøglerelation til rækker af relaterede undertyper

  2. MySQL findes ingen steder på computeren

  3. Hvordan slutter man sig til det samme bord, to gange, i mysql?

  4. Sådan kører du sql-scripts fra en pl sql-procedure