2017-05-29 106 views
3

我一直在試圖顯示沒有重複的行,但查詢無法正常工作。我認爲問題是一對多的關係,因爲一個'間隔霍拉里奧'有很多'citas'。因此,例如,我只想顯示''從8:00到15:00(這是一個間隔)''迄今(cita)'27/08/1988'。我該怎麼辦?Codeigniter如何避免重複顯示一對多關係

控制器

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

模型(EDIT)

$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

+0

嘗試'$ this-> db-> distinct($ columnName);'其中'$ columnName'是您想要區分的列。 –

+0

有了這個,查詢不斷顯示相同的重複行 – Jose

回答

2

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

我試過了,它沒有工作。我一直在嘗試更改不同的行(上方和下方)... – Jose

+0

錯誤或不工作,因爲你想? –

+0

沒有錯誤,但列表保持上面的截圖 – Jose