2013-03-19 114 views
0

我有訂單表返回結果取決於行計數

Orders{ 
    id 
    user_id 
    status 
    date 
} 

我需要返回的結果,就好像那裏有一個令同一個用戶的5倍以上 一樣,如果孤單訂購這樣

ID User_ID Status Date 
1 1  Pending xxxxx 
2 1  Pending xxxxx 
3 1  Pending xxxxx 
4 1  Pending xxxxx 
5 1  Pending xxxxx 
6 2  Pending xxxxx 
7 3  Pending xxxxx 
8 2  Pending xxxxx 
9 1  Pending xxxxx 

結果將是來自用戶id = 1的所有訂單導致超過5個訂單。 我如何使用活動記錄來做到這一點?

回答

0
Select * from orders 
where user_id in (Select user_id from orders group by user_id having count(1)>=5) 
+0

給一個男人一條魚,你喂他一天。教一個男人去釣魚,你一輩子喂他...... – 2013-03-19 15:44:16

+1

他確實要求活躍的記錄語法。 – 2013-03-19 15:51:40

+0

對於活動記錄,您可以在子查詢中添加where子句從訂單 中選擇*其中user_id(從user_id中選擇user_id,其中status ='待定'group by user_id具有count(1)> = 5) – 2013-03-19 15:57:59

1

選擇從表 *其中[USER_ID]在(由[USER_ID]從表組選擇[USER_ID]具有COUNT(*)> 5)

0

在模型中,你可以通過用戶ID和獲取特定用戶的結果

型號

function get_orders($userid) 
    { 
     $this->db->where('user_id',$userid); 
     $query =$this->db->get('orders'); 
     return $query->result(); 
    } 

控制器

function orders($userid){ 

$result=$this->model->get_orders($userid); 
if($result){ 

foreach ($result as $row){ 
echo $row->id."<br/>"; 
echo $row->user_id."<br/>"; 
.... 
.. 
} 

} 

}