2013-10-22 9 views
6
$q = $this->db->select(' 
      books.title, 
      reserved_books.id, 
      reserved_books.isbn, 
      reserved_books.price, 
      reserved_books.item_sold, 
      reserved_books.date_sold, 
      reserved_books.total_amount 
      ') 
     ->from('reserved_books') 
     ->join('books','reserved_books.isbn= books.isbn') 
     ->limit($limit,$offset); 

come posso utilizzare distinto qui nella mia query? reserved_books.isbn è l'unico.come utilizzare DISTINCT qui nella mia query CODEIGNITER

risposta

23

Prova Sotto:

$this->db->distinct(); 

ma distinti non sempre funziona. Si dovrebbe aggiungere - >group_by("name_of_the_column_which_needs_to_be unique");

$this->db->group_by('column_name'); 
+0

puoi applicare il tuo commento nel mio codice? –

+0

hai ragione distinto non funzionerà nel mio codice .. ho usato $ this-> db-> distinct(); sopra la mia selezione ma non funziona –

+1

quindi prova con la funzione Group By .... $ this-> db-> group_by ('column_name'); –

1

Aggiunge la parola chiave "DISTINCT" a una query prima di Select

$this->db->distinct(); 

Refrence

+0

ho provato questo ma mostra i record duplicati –

+0

ho usato con MY_Model di jerremy. Ha funzionato per me. – Fawzan

1

Ecco un modo per farlo

$select = array(
      'books.title', 
      'reserved_books.id', 
      'DISTINCT reserved_books.isbn', 
      'reserved_books.price', 
      'reserved_books.item_sold', 
      'reserved_books.date_sold', 
      'reserved_books.total_amount' 
); 
$q = $this->db 
     ->select($select) 
     ->from('reserved_books') 
     ->join('books','reserved_books.isbn= books.isbn') 
     ->group_by('reserved_books.isbn') 
     ->limit($limit,$offset); 
+0

l'isbn è l'unico il cui titolo proviene da un'altra tabella –

0

Ecco modo migliore per rimuovere voce duplicata.

$query = $this->db->select("inf.id, inf.sku, inf.fab_id, inf.sku, inf.amount, inf.min_length, inf.num_of_pieces, inf.width ,inf.type") 
          ->join("retailcat","retailcat.sku=SUBSTRING(inf.sku,1,19) AND retailcat.category=218","INNER") 
          ->distinct() 
          ->get("input_factor inf"); 
1

Non è necessario alcun join

$query=$this->db->distinct()->select('table_attribute')->where('condition')->get('table_name'); 
    return $query->result(); 
Problemi correlati