0

次の単純なクエリを検討してください。

$this->db->join('bids','bids.bid_for = request_quote.quoteid','left');

結果を結合する代わりに、見つかったすべての入札の COUNT を結合するように変更する方法はありますか?

これを単純な SQL で書き直すこともできますが、これはより大きなクエリの一部であり、SQL で書き直したくありません。

4

2 に答える 2

0

数時間いじった後、動作するようになったので、誰かが再び必要になった場合に備えて共有してください。

    public function getAllJobsByUserId($userid){
        $this->db->select('quoteid')->select('quoteby')->select('country_from')
    ->select('country_to')->select('city_from')->select('city_to')
    ->select('countries.country_name, countries_to.country_name AS     country_name_to')
        ->select('COUNT(\'bids.bid_id\') as bid_count');
        $this->db->from('request_quote');
        $this->db->where('quoteby',$userid);
        $this->db->join('countries','countries.country_id = request_quote.country_from');
        $this->db->join('countries as countries_to','countries_to.country_id = request_quote.country_to');
        $this->db->join('bids as bid_count','bid_count.bid_for = request_quote.quoteid','outter');
        $query=$this->db->get();
    return $query->result();
    }

これはうまくいくようです。しかし、まだ将来的には、より複雑なクエリをまっすぐな SQL で書く可能性があります :)

于 2012-06-20T22:55:07.360 に答える
0

難しいもの。CI のソース コードを見てきましたが、そのための「ハック」は見当たりません。おそらく、この CI の方法を使用できます。

$this->db->count_all_results();
于 2012-06-20T20:30:59.237 に答える