首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多个表删除sql中的一条记录

如何使用多个表删除sql中的一条记录
EN

Stack Overflow用户
提问于 2012-01-07 14:36:36
回答 3查看 51关注 0票数 0

我在sql中遇到了一个问题,有人能帮我吗?我有3个表sublocation,postingdetail和employee

我必须从子区块表中删除sublocid,但首先我必须检查是否有员工在处理postingdetail表中的该子区块,如果有,则不应删除该记录。

表子区块

亚菌素

子区块名称

主要杀虫剂

表发布详细信息

清空

子区块

mainloc

表employee

清空

空名称

亚菌素

主要杀虫剂

EN

回答 3

Stack Overflow用户

发布于 2012-01-07 14:48:01

就像这样

代码语言:javascript
复制
DELETE 
FROM [SUBLOCATION] 
LEFT JOIN [EMPLOYEE] ON [SUBLOCATION].[sublocid] = [EMPLOYEE].[sublocid] 
LEFT JOIN [POSTINGDETAIL] ON [POSTINGDETAIL].[empid] = [EMPLOYEE].[empid] 
WHERE empid IS NULL

这可能行得通。

票数 0
EN

Stack Overflow用户

发布于 2012-01-07 14:49:26

我不熟悉sql-server,我自己也是一个MySQL用户,但我知道sql-server确实有存储过程……这就是存储过程要做的事情……

Here is a little tutorial on stored procedures.

票数 0
EN

Stack Overflow用户

发布于 2012-01-07 14:55:48

我不明白postingdetail表的含义,也不明白为什么我们从表employee而不是postingdetail中获取sublocid,但是您的查询应该如下所示:

代码语言:javascript
复制
delete sublocation
where sublocid not in
(
    select e.sublocid
    from employee e
    join postingdetail p on e.empid = p.emid
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8767915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档