老师,我用外连接这样规范嘛
来源:4-4 课堂作业讲解:DELETE语句
qq__8359
2020-02-26 20:38:19
#删除员工king和他的直接下属员工信息
DELETE e
FROM t_emp e LEFT JOIN (SELECT empno,ename FROM t_emp e1 WHERE e1.ename="KING") t
ON e.mgr=t.empno
WHERE e.ename="KING";
3回答
_D_D_
2020-03-11
删除员工king和他的直接下属员工信息
内连接解法(老师的):
DELETE e FROM temp e JOIN (SELECT empno FROM t_emp WHERE ename='KING') t ON e.mgr=t.empno OR e.empno=t.empno
外连接解法:
DELETE e FROM t_emp e LEFT JOIN (SELECT empno FROM t_emp WHERE ename='KING') t ON e.mgr=t.empno WHERE t.empno IS NOT NULL OR e.ename='KING'
一个小技巧,麻烦的语句,现用查询语句试试,看看查出来的表长什么样子,再改成 UPDATE 或 DELETE。
好帮手乔木
2020-02-27
同学你好:
左外连接是查询的是左表的所有内容,如果不符合条件的字段为空,所以删除时是将所有的记录全部删除,内连接则删除的是符合条件的记录。
如果我解决了同学的问题,请采纳!学习愉快^_^。
qq__8359
提问者
2020-02-26
问题发错了 ,
DELETE e
FROM t_emp e LEFT JOIN (SELECT empno FROM t_emp WHERE ename="KING") t
ON e.mgr=t.empno OR e.empno=t.empno;
为什么用外连接就全删掉了?
相似问题