select t1.* from order_info t1 inner join (select user_id from order_info where status='completed' and product_name in('C++','Java','Python') and date>'2025-10-15' group by user_id having count(id)>=2) t2 on t1.user_id=t2.user_id where status='completed' and product_name in('C++','Java','Python') and date>'2025-10-15' order by t1.id