我在sql中遇到问题,任何人都可以帮助我 我有3张桌子 sublocation,postingdetail和employee
我必须从子位置表中删除sublocid 但首先我必须检查是否有任何员工在postsdetail表中处理该子位置,如果是,则不应删除该记录。
sublocid
sublocname
mainlocid
EMPID
subloc
mainloc
EMPID
empname
sublocid
mainlocid
答案 0 :(得分:0)
像
这样的东西DELETE
FROM [SUBLOCATION]
LEFT JOIN [EMPLOYEE] ON [SUBLOCATION].[sublocid] = [EMPLOYEE].[sublocid]
LEFT JOIN [POSTINGDETAIL] ON [POSTINGDETAIL].[empid] = [EMPLOYEE].[empid]
WHERE empid IS NULL
这可能有效。
答案 1 :(得分:0)
我不熟悉sql-server,我自己就是MySQL用户,但我知道sql-server确实有存储过程......那就是存储过程所做的...
答案 2 :(得分:0)
我不明白postsdetail表的含义,以及为什么我们从表employee中获取sublocid而不是postdetail,但是你的查询看起来应该是这样的:
delete sublocation
where sublocid not in
(
select e.sublocid
from employee e
join postingdetail p on e.empid = p.emid
)