0

考虑这个简单的查询:

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

有没有办法改变它,所以它不是加入结果,而是加入它找到的所有出价的 COUNT ?

我可以用普通 SQL 重写它,但它是更大查询的一部分,我不想用 SQL 重写

4

2 回答 2

0

艰难的一个。我查看了 CI 的源代码,但没有看到“黑客”。也许你可以使用这个 CI 的方法:

$this->db->count_all_results();
于 2012-06-20T20:30:59.237 回答
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 回答