求助确认MySQL查询语句是否正确 若错误请提供正确写法
MySQL查询语句错误修正
原语句存在的错误
- 日期格式错误:MySQL标准日期格式为
YYYY-MM-DD,原语句使用的MM-DD-YYYY格式无法被正确解析,会导致日期匹配失效,无法命中2020年的销售数据 - 排序字段引用错误:
ct是country表的别名,该表无quantity字段,quantity属于sales表,order by ct.quantity asc会直接触发字段不存在的执行报错
修正后的查询语句
SELECT ct.name, cm.name, sl.quantity FROM sales AS sl INNER JOIN country AS ct ON sl.country_id = ct.id INNER JOIN car_model AS cm ON cm.id = sl.model_id WHERE sl.sales_date BETWEEN '2020-01-01' AND '2020-12-31' ORDER BY sl.quantity ASC;
可选优化方案
如果sales_date字段为DATETIME类型,原BETWEEN条件会漏掉2020年12月31日00:00:01到23:59:59的所有数据,可将WHERE条件调整为更严谨的写法:
WHERE sl.sales_date >= '2020-01-01' AND sl.sales_date < '2021-01-01'
内容的提问来源于stack exchange,提问作者unown_32
相关产品推荐
相关产品推荐

