老师,这里的报错是啥问题
DELETE e,s
FROM employee e
JOIN salary s ON s.employee_id = e.id
WHERE e.department_id = 2
ORDER BY (s.basic_salary + s.bonus + s.performance) DESC
LIMIT 1;
执行 sql 时候报错了,但是根据课程中老师说的,语法因该没错才对;
DELETE e,s
FROM employee e
JOIN salary s ON s.employee_id = e.id
WHERE e.department_id = 2
ORDER BY (s.basic_salary + s.bonus + s.performance) DESC
LIMIT 1
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY (s.basic_salary + s.bonus + s.performance) DESC
LIMIT 1' at line 5
> Time: 0s
>
15
收起
正在回答
1回答
同学你好,Mysql中不支持在删除操作中使用排序和限制,也就是说,在delete语句中是不能使用order by和limit的。但是,此处可以使用子查询的方式来解决,即在where子句中使用select查询并排序出结果,然后再删除。同学可以自行尝试一下。
祝学习愉快~
Java工程师 2024版
- 参与学习 2020 人
- 提交作业 1249 份
- 解答问题 1203 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星