请编写一条 SQL 查询,找出 2023 年 3 月期间所有订单及其对应的客户姓名。
考察说明
考查 SQL 基础查询能力,特别是多表连接和日期条件过滤。
回答思路
- 【回答框架 1】该查询通常涉及订单表和客户表,通过外键(如 customer_id)进行内连接(INNER JOIN),确保只返回有客户的订单。
- 【回答框架 2】日期过滤条件应针对订单日期字段,使用 BETWEEN 和日期边界,确保覆盖整个3月份,如 order_date >= '2023-03-01' AND order_date < '2023-04-01'。
- 【回答框架 3】若订单表中客户字段可为空,需考虑是否使用 LEFT JOIN 保留无客户订单,但题目明确要求对应客户姓名,因此 INNER JOIN 更合适。
- 【回答框架 4】建议使用表别名提高可读性,并明确选择客户姓名字段,避免歧义。
- 【关键点 1】使用 INNER JOIN 连接订单和客户表。
- 【关键点 2】使用日期范围条件:order_date >= '2023-03-01' AND order_date < '2023-04-01'。
- 【关键点 3】查询结果包含订单信息和客户姓名。
- 【易错点 1】避免使用日期字符串比较时格式不一致导致漏查。
- 【易错点 2】注意时区影响,若系统使用 UTC,需调整日期范围。
- 【易错点 3】勿忽略订单表中可能存在的 NULL 外键,但 INNER JOIN 自动过滤。