老师,我用外连接这样规范嘛

来源: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。

0

好帮手乔木

2020-02-27

同学你好:

左外连接是查询的是左表的所有内容,如果不符合条件的字段为空,所以删除时是将所有的记录全部删除,内连接则删除的是符合条件的记录。

如果我解决了同学的问题,请采纳!学习愉快^_^。

0

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;

为什么用外连接就全删掉了?

0
hD_D_
h 你 LEFT JOIN 肯定全删啊,左表数据全都在。
h020-03-11
共1条回复

0 学习 · 2669 问题

查看课程