我这样的表
id , user_id , product_id , product_name , sub_name , status
1 , 1 , 001 , name1 , sub1, 1
2 , 1 , 001 , name1 , sub2, 1
3 , 1 , 002 , name2 , sub3, 1
我想在我的视图页面中显示我的结果,如
id , user_id , product_id , product_name , sub_name , status
1 , 1 , 001 , name1 , sub1, 1
3 , 1 , 002 , name2 , sub3, 1
我的Sql查询
$data['product'] = $this->db->group_by('product_id')
->where(array('user_id' => $id, 'product_id' => $product_id))->get('sr_shortserials')->result();
但我得到了这样的
id , user_id , product_id , product_name , sub_name , status
3 , 1 , 002 , name2 , sub3, 1
这一个好,但我想要id 1和3
答案 0 :(得分:1)
我假设您希望使用最早的sub_name字段值显示表中的所有产品。
最好的方法是重构数据并将sub_name字段旋转到其单独的表中,因为当前数据结构在普通表单梯形图上不是太高。
但是查询的主要逻辑并不真正取决于sub_name是否是不同的表。您需要获取每个产品的最小ID(如果sub_names位于不同的表中,则为min sub_name id)并返回主表(单独的sub_names表)以获取正确的详细信息。
select t1.*
from yourtable t1
inner join
(select user_id, product_id, min(id) as minid
from yourtable
group by user_id, product_id) t2 on t1.id=t2.minid