php - Codeigniter 如何避免重复显示一对多关系

标签 php mysql codeigniter grocery-crud

我一直在尝试显示没有重复的行,但查询无法正常工作。我认为问题是一对多的关系,因为一个'intervaloHorario'有很多'citas'。因此,例如,我只想显示:“从 8:00 到 15:00(这是一个 intervaloHorario)”到日期(cita)“27/08/1988”。我该怎么办?

Controller

$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();

数据库

Database

当前数据库

Current database

截图

Duplicate

当前列表(无序列表但重复存在)

Dup persists

最佳答案

您可以使用 $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();
}

关于php - Codeigniter 如何避免重复显示一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44237761/

相关文章:

javascript - 如何将变量发送到模态以显示从数据库php查询的值

MySql "comments"参数作为描述符?

php - 通过 MySQL 查询按 WordPress 用户显示名称获取帖子

php - 三元运算符在 godaddy php 中不起作用(parsererror)

php - 如何在 magento 结帐过程之前设置自定义总计?

php - 2checkout测试支付模拟

mysql - 如何仅获取 blob 的子集

php - CodeIgniter - 将 GIF 转换为 JPG?可能的?

sqlite - 在 codeigniter 中使用 SQLite

php - CodeIgniter session 中的 user_data 用来做什么?