我需要编写一个SQL脚本来选择table1中的一个记录,然后在数据库的其余表中查找。如果它没有找到记录,我需要删除table1中的记录。任何人提供一些示例脚本?SQL删除查询
Q
SQL删除查询
0
A
回答
3
一个例子
delete table1
where not exists (select 1
from Table2
where table1.SomeColumn = Table2.SomeColumn)
AND table1.SomeColumn = 5 --just an example,
离开进出,如果你想删除所有从表1中不存在表中的行2
你也可以使用LEFT JOIN或NOT IN
2
喜欢我做的事情:
DELETE table1
FROM table1
WHERE table1.ID NOT IN (
SELECT RefID FROM Table2
UNION
SELECT RefID FROM Table3
...
)
假设REFID是FK对table1.ID。这是你需要的吗?
+0
如果检查多个表格,这将工作得很好。当然,我会让它成为“联盟”。 – 2010-06-08 14:24:42
1
DELETE FROM Table1 WHERE id=10 AND NOT EXISTS (SELECT * FROM Table2 WHERE id=10);
1
非常普遍,(因为你给了小细节)
Delete Table1 t1
Where [Criteria to find table1 Record]
And Not Exists(Select * From Table2
Where pk = t1.Pk)
And Not Exists(Select * From Table3
Where pk = t1.Pk)
And Not Exists(Select * From Table4
Where pk = t1.Pk)
... etc. for all other tables
+0
@VeeArr:我们有一个基于日期时间戳清除所有表中的记录的数据库,但有一个表没有日期时间戳。我需要从这里删除其他地方不存在的记录。 @HLGEM:我不需要一次做一条记录,但我只想要一个基本脚本。我已经做了选择和删除记录存在的地方,但不是相反。我正在查找大约10张桌子。 @Martin Smith:是的。 – jerle78 2010-06-08 14:29:43
相关问题
- 1. SQL查询删除
- 2. SQL查询删除
- 3. SQL - 删除和子查询
- 4. SQL删除查询INNER JOIN
- 5. SQL删除与子查询
- 6. PL SQL中删除查询
- 7. 删除查询不删除
- 8. 删除查询
- 9. 删除sql查询非常慢
- 10. 动态SQL查询删除表
- 11. SQL查询删除比上一个
- 12. SQL查询删除部分路径/空
- 13. 删除SQL查询中的小数点
- 14. 优化的SQL查询来删除行
- 15. SQL查询删除重复说明
- 16. SQL查询来删除循环冗余
- 17. Sql根据条件删除查询
- 18. 删除重复使用SQL查询
- 19. 删除数据的SQL查询 - C#
- 20. 我有一个SQL删除查询
- 21. 如何删除鲜明的SQL查询
- 22. SQL查询,删除,并返回消息
- 23. SQL查询删除重复值
- 24. PHP SQL - 高级删除查询
- 25. 上删除SQL使用极限查询
- 26. 在sql中删除查询的性能
- 27. SQL:在对查询删除重复
- 28. 删除SQL查询中的空列
- 29. 通过查询删除SQL中的行
- 30. 在sql查询中删除重复?
你能提供你正在尝试做一个更具体的解释? – VeeArr 2010-06-08 14:20:10
你为什么一次只做一个记录? – HLGEM 2010-06-08 14:21:05
最终目标是删除table1中没有相应记录的所有记录吗? – 2010-06-08 14:21:32