删除问题
#删除SALLS部门的员工,以及没有部门的员工;
DELETE e
FROM t_emp e LEFT JOIN (SELECT deptno FROM t_dept WHERE dname="SALLS") t
WHERE e.deptno=t.deptno OR e.deptno IS NULL ;
这样写可以吗?
以左表为主,因为有些员工没有部门, 所以把查询出左表的所有信息,通过on,判断出左边的deptno=右表的deptno, 进行删除, 也就是删除了SALLS部门的员工, or 则删除了没有部门的员工
21
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小尤
2021-04-14 17:59:03
同学你好,1、同学sql语句存在一点小问题,左连接语法应该是LEFT JOIN...ON,而不是LEFT JOIN...WHERE 。
2、不建议使用左连接,以左表为主会查询出左表中全部的数据,也就是说会将左表中的数据全部删除,则建议同学使用JOIN。修改后代码如下所示:
DELETE e
FROM t_emp e JOIN (SELECT deptno FROM t_dept WHERE dname="SALES") t
ON e.deptno=t.deptno OR e.deptno IS NULL;
注: JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
祝学习愉快!
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星