删除另一个表中没有id的所有行

Law*_*lla 4 mysql sql database-relations

我想在另一个表示例中删除所有没有现有外键的行:

table1
+----+-------+
|id  | data  |
+----+-------+
| 1  | hi    |
+----+-------+
| 2  | hi    |
+----+-------+
| 3  | hi    |
+----+-------+
| 4  | hi    |
+----+-------+
| 5  | hi    |
+----+-------+

table2
+----+-------+
|a_id| data  |
+----+-------+
| 1  | hi    |
+----+-------+
| 20 | hi    |
+----+-------+
| 3  | hi    |
+----+-------+
| 40 | hi    |
+----+-------+
| 5  | hi    |
+----+-------+
Run Code Online (Sandbox Code Playgroud)

查询将删除table2上ID为#20和40的行.

我需要这样做,以便我可以建立与table1和table2的关系.

egg*_*yal 11

DELETE table2 
FROM   table2 
       LEFT JOIN table1 
              ON table2.a_id = table1.id 
WHERE  table1.id IS NULL 
Run Code Online (Sandbox Code Playgroud)