我需要編寫一個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