我一直试图显示没有重复项的行,但查询工作不正常。我认为问题在于一对多的关系,因为一个“间隔”有很多“城堡”。所以,例如,我只想显示:“从8:00到15:00(这是一个Intervalohorario)”“到现在(CITA)”“27/08/1988”。我该怎么办?
控制器

$this->Fechacita_Model->delete_duplicaterow();

模型
 public function delete_duplicaterow() {
  $this->db->select('
            c.intervaloHorario','ci.cita'

        );

  $this->db->from('intervaloshorarios c');
  $this->db->join('citas ci', 'ci.idCitas = c.idIntervaloHorario','left');
  $this->db->group_by('c.idIntervaloHorario','ci.cita');
  $query =  $this->db->get();
    return $query->num_rows();
}

模型(编辑)
$this->db->select(array('c.intervaloHorario', 'ci.cita'));
        $this->db->distinct();
        $this->db->from('intervaloshorarios c');
        $this->db->join('citas ci', 'ci.idCitas = c.idIntervaloHorario', 'left');
        $this->db->group_by('c.idIntervaloHorario', 'ci.cita');

        $query = $this->db->get();
        $this->db->last_query();
        return $query->num_rows();

数据库
php - Codeigniter如何避免重复显示一对多的关系-LMLPHP
当前数据库
php - Codeigniter如何避免重复显示一对多的关系-LMLPHP
截图
php - Codeigniter如何避免重复显示一对多的关系-LMLPHP
当前列表(无序列表,但重复项仍然存在)
php - Codeigniter如何避免重复显示一对多的关系-LMLPHP

最佳答案

您可以使用$this->db->distinct()并添加选择主键以删除重复项:

public function delete_duplicaterow() {
  $this->db->select(array('c.intervaloHorario', 'ci.cita'));
  $this->db->distinct();
  $this->db->from('intervaloshorarios c');
  $this->db->join('citas ci', 'ci.idCitas = c.idIntervaloHorario','left');
  $this->db->group_by('c.idIntervaloHorario','ci.cita');
  $query =  $this->db->get();

  return $query->num_rows();
}

10-07 19:38
查看更多