sql >> Databasteknik >  >> RDS >> Mysql

Returnerar saknade resultat från många till många tabeller

Tänk på att jag inte är bekant med Zend-Framework, så du kanske måste anpassa det här lite. Men du måste använda Brands som den primära/första tabellen, så att den kan hämta alla poster i den tabellen först och sedan matcha den med resten av tabellerna.

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. Hur infogar/skapar man lagrade procedurer i mySQL från PHP?

  2. Oracle-markörens returtyp

  3. Ordningen för en SQL Select-sats utan Order By-sats

  4. mysql - Dynamisk kolumnalias