Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zwracanie brakujących wyników z wielu do wielu tabel

Pamiętaj, że nie znam się na Zend-Framework, więc być może będziesz musiał to trochę dostosować. Ale musisz użyć Brands jako podstawową/pierwszą tabelę, aby najpierw pobrać wszystkie rekordy z tej tabeli, a następnie dopasować je do pozostałych tabel.

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. MySQL Użyj instrukcji WHERE, aby wskazać konkretny wiersz

  2. Jak mogę streścić przygotowane instrukcje mysqli w PHP?

  3. Zrozumienie klucza MySQL key_len w instrukcji wyjaśniania

  4. MySQL Uzupełnij brakujące daty między dwiema datami dla danego statusu

  5. Tomcat JDBC MySQL ClassNotFoundException