使用Join删除孤立记录

时间:2016-02-05 22:29:20

标签: mysql join sql-delete

我有两张桌子如下。理想情况下Table2.C1Table1.C1的外键,但是最初没有设置外键。我们现在无法设置外键,因为Table2中存在一些孤立记录,我们希望在应用alter语句之前将其删除。

注意:我不想使用任何子/嵌套查询

Table1
--------
| C1   |
--------
| 1    |
| 2    |
| 3    |
| 4    |
|------|

Table2
--------
| C1   |
--------
| 1    |
| 1    |
| 8    |
| 9    |
| 2    |
|------|

我想从表2中删除记录89

2 个答案:

答案 0 :(得分:3)

DELETE table2.*
FROM
table2
LEFT OUTER JOIN table1 ON table2.c1 = table1.c1
WHERE
table1.c1 IS NULL

答案 1 :(得分:1)

DELETE table2.* 
FROM table1 
RIGHT JOIN table2 ON table1.c1=table2.c1
WHERE table1.c1 IS NULL