返回结果取决于列的行数

时间:2013-03-19 15:34:55

标签: sql codeigniter activerecord

我有表格订单

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个。 我如何使用活动记录来做到这一点?

3 个答案:

答案 0 :(得分:1)

从表中选择* 其中[User_ID] in(从[User_ID]中选择[User_ID]具有计数(*)> 5)

答案 1 :(得分:0)

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

答案 2 :(得分: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/>";
....
..
}

}

}