Conider这个简单的查询:
$this->db->join('bids','bids.bid_for = request_quote.quoteid','left');
有没有办法可以改变它,所以不是加入结果,而是加入它找到的所有出价的COUNT?
我可以在纯SQL中重写它,但它是更大的查询的一部分,我不想在SQL中重写
答案 0 :(得分:0)
艰难的一个。我查看了CI的源代码,但我没有看到“hack”。 也许你可以使用这个CI的方法:
$this->db->count_all_results();
答案 1 :(得分: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中编写更复杂的查询:)