从表中删除其他表中找不到键的表?

时间:2012-11-06 03:58:02

标签: mysql sql subquery

表1:

  • id
  • 名称

表2:

  • ID
  • other_table_id
  • table_1_id
  • ..

基本上我想做的是

Delete from table_1 
where id not in (select table_1_id 
                 from table_2 
                 group by table_1_id);

哪个应该有用,我想知道的是,如果子查询是最好的方法/还有其他方法吗?

1 个答案:

答案 0 :(得分:8)

我更喜欢使用JOIN而不是子查询

DELETE a FROM table_a a
            LEFT JOIN table_2 b
                ON a.ID = b.table_1_id
WHERE   b.table_1_id IS NULL