2013-10-28 4 views
6

Ich habe zwei Tabelle wie folgt:Select, zählen und wo codeigniter und MySQL mit

- tblSaler 

    SalerID | SalerName | 
    ----------------------| 
    1  | sothorn | 
    ----------------------| 
    2  | Daly  | 
    ----------------------| 
    3  | Lyhong | 
    ----------------------| 
    4  | Chantra | 
    ----------------------| 

- tblProduct 

ProductID | Product | SalerID | 
--------------------------------| 
1   | Pen  | 3  | 
--------------------------------| 
2   | Book  | 2  | 
--------------------------------| 
3   | Phone | 3  | 
--------------------------------| 
4   | Computer | 1  | 
--------------------------------| 
5   | Bag  | 3  | 
--------------------------------| 
6   | Watch | 2  | 
--------------------------------| 
7   | Glasses | 4  | 
--------------------------------| 

Das Ergebnis, das ich brauche, ist:

sothorn | 1 
Daly | 2 
Lyhong | 3 
Chantra | 1 

Ich habe dies versucht:

$this->db->select('count(SalerName) as sothorn where tblSaler.SalerID = 1, count(SalerName) as Daly where tblSaler.SalerID = 2, count(SalerName) as Lyhong where tblSaler.SalerID = 3, count(SalerName) as Chantra where tblSaler.SalerID = 4'); 
    $this->db->from('tblSaler'); 
    $this->db->join('tblProduct', 'tblSaler.SalerID = tblProduct.SalerID'); 

Antwort

9

Sie können diese Abfrage für dieses

SELECT 
    tblSaler.SalerName, 
    count(tblProduct.ProductID) as Total 
FROM tblSaler 
    LEFT JOIN tblProduct 
    ON tblProduct.SalerID = tblSaler.SalerID 
GROUP BY tblSaler.SalerID 

verwenden Und hier ist der aktive Datensatz für dieses

$select = array(
       'tblSaler.SalerName', 
       'count(tblProduct.ProductID) as Total' 
      ); 
$this->db 
     ->select($select) 
     ->from('tblSaler') 
     ->join('tblProduct','roduct.SalerID = tblSaler.SalerID','left') 
     ->group_by('tblSaler.SalerID') 
     ->get() 
     ->result_array(); 

Demo

OUTPUT

| SALERNAME | TOTAL | 
|-----------|-------| 
| sothorn |  1 | 
|  Daly |  2 | 
| Lyhong |  3 | 
| Chantra |  1 |   
2

Try This

$this->db->select('SalerName, count(*)'); 
$this->db->from('tblSaler'); 
$this->db->join('tblProduct', 'tblSaler.SalerID = tblProduct.SalerID'); 
$this->db->group('SalerID'); 
3

Bitte versuchen Sie diesen Code. Es funktioniert gut für mich und es wird dir auch helfen.

$this->db->select('SalerName, count(*)'); 
$this->db->from('tblSaler');   
$this->db->join('tblProduct', 'tblSaler.SalerID = tblProduct.SalerID'); 
$this->db->group_by('tblSaler.SalerID');  
$query = $this->db->get(); 

können Sie ganze SQL-Abfrage erhalten mit dieser Zeile unter

$query = $this->db->get(); 
echo $this->db->last_query(); 
0
## try this ## 
    $this->db->select($column_name); 
    $this->db->where($column_name,$type); 
    $q=$this->db->get($table_name); 
    $count=$q->result(); 
    return count($count);'