题目描述
我们有一个表:
order_info
:包含订单信息,包括订单IDid
、用户IDuser_id
、产品名称product_name
、订单状态status
、客户端IDclient_id
和订单日期date
。
目标是查询出在2025年10月15日之后状态为“completed”的“C++”、“Java”或“Python”课程订单,并按订单ID升序排序。
知识点
- 条件过滤:使用
WHERE
子句筛选符合条件的记录。 - 子查询:在
IN
子句中使用子查询来筛选特定产品名称。 - 排序:使用
ORDER BY
子句按订单ID升序排列结果。
关键问题分析
1. 筛选购买成功的订单
我们需要筛选出状态为“completed”的订单:
where status = 'completed'
2. 筛选特定日期之后的订单
我们需要筛选出在2025年10月15日之后的订单:
and date > '2025-10-15'
3. 筛选特定课程的订单
我们需要筛选出产品名称为“C++”、“Java”或“Python”的订单。
and product_name in ('C++','Java','Python')
4. 排序输出
我们需要按订单ID升序排列输出结果:
order by id asc
完整代码
select *
from order_info
where status = 'completed'
and date > '2025-10-15'
and product_name in ('C++','Java','Python')
order by id asc