2017-05-29 8 views
3

重複していない行を表示しようとしていますが、クエリが正しく機能していません。私は、問題は1対多の関係だと思う。なぜなら、1つの 'intervaloHorario'には多くの 'citas'があるからだ。したがって、例えば、私は '8時から15時まで(これはインターラクティブ・ホラリオです)'〜(cita) '27/08/1988'のみを表示したいと思います。私は何をすべきか?Codeigniter 1対多の関係を示す重複を回避する方法

コントローラ

$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

errosはありませんが、リストは – Jose

関連する問題