Mysql
 sql >> база данни >  >> RDS >> Mysql

Връщане на липсващи резултати от много към много таблица

Имайте предвид, че не съм запознат със Zend-Framework, така че може да се наложи да адаптирате това малко. Но трябва да използвате Brands като основна/първа таблица, така че да може първо да получи всички записи от тази таблица, след което да я съпостави с останалите таблици.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да пренаредите първичен ключ?

  2. Изтриване на Mysql с подзаявка

  3. Връщане на стойност 0 от ред на база данни в PHP/MySQL след заявка

  4. Как да намеря n'-та най-висока стойност на колона?

  5. mysql изберете вътрешно ограничение