Codeigniter 在活动记录中获取join的结果计数

Codeigniter 在活动记录中获取join的结果计数,codeigniter,activerecord,Codeigniter,Activerecord,对这个简单的查询排序: $this->db->join('bids','bids.bid_for = request_quote.quoteid','left'); 是否有任何方法可以改变它,因此它不会加入结果,而是加入它找到的所有出价的计数 我可以用普通的SQL重写它,但它是更大查询的一部分,我不想用SQL重写它。我已经看过CI的源代码了,我没有看到一个“黑客”。 也许您可以使用此CI的方法: $this->db->count_all_results(); 好吧,在

对这个简单的查询排序:

$this->db->join('bids','bids.bid_for = request_quote.quoteid','left');
是否有任何方法可以改变它,因此它不会加入结果,而是加入它找到的所有出价的计数


我可以用普通的SQL重写它,但它是更大查询的一部分,我不想用SQL重写它。我已经看过CI的源代码了,我没有看到一个“黑客”。 也许您可以使用此CI的方法:

$this->db->count_all_results();

好吧,在闲逛了几个小时后,我把它用上了,所以我会把它分享给大家,以防有人再次需要它:

    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编写更复杂的查询:)

你看,这只会计算我从主查询中得到的所有结果,如果你知道我的意思,它不会关心连接结果。好的,实际上这没有按预期工作。它只返回一个结果。