题目描述

我们有一个表:

  • order_info:包含订单信息,包括订单ID id、用户ID user_id、产品名称 product_name、订单状态 status、客户端ID client_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