多个查询以从表中删除行

时间:2014-06-15 00:54:34

标签: php mysql

如何运行代码,检查table1postid,然后搜索table2以查看该值是否确实存在。如果确实存在,则移至下一个但如果不存在,则从table1移除该行。

因此,如果在table1我有一行有3行:postid 333另一个444和另一个555

假设333中不存在table2,那么我需要从postid删除包含table1的行并转到下一行。它一直这样做,直到检查完所有行。

我将如何做到这一点?我很困惑,无法想到一切。

1 个答案:

答案 0 :(得分:1)

如果您正在迭代帖子ID,则可以为每个postid执行此类删除:

DELETE FROM table1 WHERE postid = 333 AND 333 NOT IN (SELECT postid FROM table2 WHERE postid = 333);

或者,删除table1中没有table2中匹配postid的记录的所有行(假设table2.postid列定义为NOT NULL):

DELETE table1 FROM table1 LEFT JOIN table2 ON (table2.postid = table1.postid) WHERE table2.postid IS NULL;