我目前正在开发一个Codeigniter查询,我可以获得一堆结果。但是,当我在同一个查询中同时使用group_by和order_by时,order_by会被否决,并且由于某种原因不适用。
查询如下:
$this->db->select('q.questionNumber, qa.qaId')->from('questions q');
$this->db->join('questionAnswers qa', 'qa.questionId = q.questionId');
$this->db->where('customerId', $customerId);
$this->db->order_by('q.questionNumber', 'desc');
$this->db->group_by('q.subject');
$query = $this->db->get();
$query->result();
答案 0 :(得分:1)
使用更新的
$this->db->select('q.questionNumber, qa.qaId')->from('questions q');
$this->db->select_max('q.questionNumber' , 'questionNumber'); // added this
$this->db->join('questionAnswers qa', 'qa.questionId = q.questionId');
$this->db->where('customerId', $customerId);
$this->db->order_by('q.questionNumber', 'desc');
$this->db->group_by('q.subject');
$query = $this->db->get();
$query->result();
答案 1 :(得分:0)
您可以使用以下方式编写查询:
$query = $this->db->query("SELECT .....");
$query->result();
答案 2 :(得分:0)
您可以针对您的查询尝试此解决方案:
$this->db->select('q.subject,COUNT(q.questionNumber), COUNT(qa.qaId)')->from('questions q');
$this->db->join('questionAnswers qa', 'qa.questionId = q.questionId');
$this->db->where('customerId', $customerId);
$this->db->group_by('q.subject');
$this->db->order_by('q.questionNumber', 'desc');
$query = $this->db->get();
$query->result();
Nessary在Group By Clause和其他带聚合函数的字段的查询中的选择行中添加列。