2013-10-28 64 views
6

我有兩個表如下:選擇,計數,其中使用笨和MySQL

- 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  | 
--------------------------------| 

,我需要的結果是:

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

我已經試過這樣:

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

回答

9

此行得到整個SQL查詢您可以使用此查詢此

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

這裏是這個

$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

輸出

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

試試這個

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

請嘗試此代碼。它對我的工作很好,它也會幫助你。

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

您可以使用下面

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