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. Laravelでの複雑なクエリのorderByの後のGroupBy

    2. gemruby-oci8を使用するOracleインスタントクライアントがRailsのDBに接続できないc

    3. Pl/SQLの日時フィールドの日付のみを更新します

    4. VARCHAR2とCHARを比較する最良の方法