如何删除表中已经不存在的主键(急!)

wendaoshuangyue 2009-07-09 03:50:38
有一个表,两个字段:id,id_foreign.其中id_foreign作为外键引用id的值(也就是自相关)。现在有一个问题,id_foreign引用的主键不存在,请问如何查询出这些不存在的主键并把这条记录删除?在线等求助,谢谢!
...全文
75 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw0701 2009-07-10
  • 打赏
  • 举报
回复

delete tb
where id_foreign not in(select id_foreign from tb where id=id_foreign)
wangjiancy 2009-07-10
  • 打赏
  • 举报
回复
delete form table tb
where tb.id_foreign not in{
select tb1.id from table tb1
}
wangjiancy 2009-07-09
  • 打赏
  • 举报
回复
你的意思是:
1,null
3,1
4,3
5,4
6,2
把6,2这条删掉是吗?我要下班了,回家给你看看。
cmdream 2009-07-09
  • 打赏
  • 举报
回复
没听懂。。汗
wendaoshuangyue 2009-07-09
  • 打赏
  • 举报
回复
比如:
1,null
2,1
3,1
4,2
第四条记录id_foreign的值为2,但是整个表没有id为2的记录,就是如何查出第四条记录
注:id_foreign为null不需要查出
wangjiancy 2009-07-09
  • 打赏
  • 举报
回复
你别着急,现在说的有点看不懂,你自己懂了,说得在明白点haoma?
htl258_Tony 2009-07-09
  • 打赏
  • 举报
回复
delete tb
where not exists(
select 1
from tb t
where t.id_foreign=tb.id)

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧