[php] 从多到多的表格中返回缺失的结果


0 Answers

Question

我有一个如下的表结构:

Brands => BrandUser <= Users

我需要获得BrandUser表中有相应记录的品牌和BrandUser表中没有相应记录的品牌...

我已经尝试了以下查询:

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();
    }

但是我只能得到BrandUser表中有相应记录的用户...我需要得到BrandUser中没有相应值的其余品牌...我该怎么做?




Related