2011-08-29 83 views
0

我的數據庫有兩個表
表A包含兩個字段(ID,NUMAR)
表B包含兩個字段(NUMAR)
如何刪除行的形式表A和B在哪裏A.numar不存在B.numar和B.numar不存在A.numar
非常感謝
刪除字段形式的mysql

+1

從哪個表中刪除行? – bpgergo

回答

3

也許這樣?

DELETE FROM TableA WHERE Numar NOT IN (SELECT Numar FROM TableB) 
DELETE FROM TableB WHERE Numar NOT IN (SELECT Numar FROM TableA) 

所以,如果你的表有這樣的數據:

id|numar id|numar 
-------- -------- 
1 | 01  1 | 02 
2 | 02  2 | 03 
3 | 03  3 | 04 
4 | 04  4 | 05 

然後第一個語句將第一個表中刪除行ID 1,然後第二個語句會從第二表中刪除的行ID 4 。

+0

@ Thoman:可能沒有任何實例存在於一個表中而不是另一個表中,而是存在重複實例?這是一個完全不同的問題。 – David

+0

SELECT * FROM TableA WHERE TableA.numar NOT IN(SELECT numar FROM tableB) MySQL返回一個空結果集 – Thoman

+0

@Thoman:這會告訴我在'TableA'中沒有'numar'值的記錄不存在於'TableB'中。所以這聽起來像沒有什麼可以根據您的標準刪除。 – David