php - ejemplos - django
Devolver los resultados faltantes de muchas a muchas tablas (1)
Eso sí, no estoy familiarizado con Zend-Framework, así que es posible que tengas que adaptar esto un poco. Pero necesita utilizar Brands
como la principal / primera tabla, para que pueda obtener todos los registros de esa tabla primero, y luego compararla con el resto de las tablas.
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();
}
Tengo una estructura de tabla como la siguiente:
Brands => BrandUser <= Users
Necesito obtener marcas que tengan el registro correspondiente en la tabla BrandUser y las que no tengan registro correspondiente en la tabla BrandUser ...
He intentado la siguiente consulta:
public function getUserBrands($userId) {
$select = new Select();
$select->from(array(''bu'' => $this->table));
$select->join(array(''b'' => ''brands''), ''bu.brandId = b.id'', array(''id'',''name''));
$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();
}
Pero solo obtengo usuarios que TENGAN el registro correspondiente en la tabla BrandUser ... Necesito obtener el resto de las marcas que no tienen el valor correspondiente en BrandUser ... ¿Cómo puedo hacer esto?