使用 Join 删除孤立记录
Delete orphan records using Join
我有 2 个表格如下。理想情况下 Table2.C1
是 Table1.C1
的外键,但最初并未设置该外键。我们现在无法设置外键,因为 Table2 中存在一些孤立记录,我们希望在应用 alter 语句之前将其删除。
注意:我不想使用任何 sub/nested 查询
Table1
--------
| C1 |
--------
| 1 |
| 2 |
| 3 |
| 4 |
|------|
Table2
--------
| C1 |
--------
| 1 |
| 1 |
| 8 |
| 9 |
| 2 |
|------|
我想从 Table 中删除记录 8
和 9
2.
DELETE table2.*
FROM table1
RIGHT JOIN table2 ON table1.c1=table2.c1
WHERE table1.c1 IS NULL
DELETE table2.*
FROM
table2
LEFT OUTER JOIN table1 ON table2.c1 = table1.c1
WHERE
table1.c1 IS NULL
我有 2 个表格如下。理想情况下 Table2.C1
是 Table1.C1
的外键,但最初并未设置该外键。我们现在无法设置外键,因为 Table2 中存在一些孤立记录,我们希望在应用 alter 语句之前将其删除。
注意:我不想使用任何 sub/nested 查询
Table1
--------
| C1 |
--------
| 1 |
| 2 |
| 3 |
| 4 |
|------|
Table2
--------
| C1 |
--------
| 1 |
| 1 |
| 8 |
| 9 |
| 2 |
|------|
我想从 Table 中删除记录 8
和 9
2.
DELETE table2.*
FROM table1
RIGHT JOIN table2 ON table1.c1=table2.c1
WHERE table1.c1 IS NULL
DELETE table2.*
FROM
table2
LEFT OUTER JOIN table1 ON table2.c1 = table1.c1
WHERE
table1.c1 IS NULL