我在sql中遇到了一个问题,有人能帮我吗?我有3个表sublocation,postingdetail和employee
我必须从子区块表中删除sublocid,但首先我必须检查是否有员工在处理postingdetail表中的该子区块,如果有,则不应删除该记录。
表子区块
亚菌素
子区块名称
主要杀虫剂
表发布详细信息
清空
子区块
mainloc
表employee
清空
空名称
亚菌素
主要杀虫剂
发布于 2012-01-07 14:48:01
就像这样
DELETE
FROM [SUBLOCATION]
LEFT JOIN [EMPLOYEE] ON [SUBLOCATION].[sublocid] = [EMPLOYEE].[sublocid]
LEFT JOIN [POSTINGDETAIL] ON [POSTINGDETAIL].[empid] = [EMPLOYEE].[empid]
WHERE empid IS NULL这可能行得通。
发布于 2012-01-07 14:49:26
我不熟悉sql-server,我自己也是一个MySQL用户,但我知道sql-server确实有存储过程……这就是存储过程要做的事情……
Here is a little tutorial on stored procedures.
发布于 2012-01-07 14:55:48
我不明白postingdetail表的含义,也不明白为什么我们从表employee而不是postingdetail中获取sublocid,但是您的查询应该如下所示:
delete sublocation
where sublocid not in
(
select e.sublocid
from employee e
join postingdetail p on e.empid = p.emid
)https://stackoverflow.com/questions/8767915
复制相似问题