admin

SQL删除基于另一个表的行

sql

这可能很容易,但这是星期一早上。我有两个表:

表格1:

Field        | Type             | Null | Key | Default | Extra
id           | int(32) unsigned | NO   | PRI | NULL    | auto_increment
group        | int(32)          | NO   |     | 0       |

表2:

Field     | Type             | Null | Key | Default | Extra
group     | int(32)          | NO   |     | 0       |

忽略其他字段…我想要一个SQLDELETE语句,该语句将删除存在与Table1.group相等的Table2.group的Table1中的所有行。因此,如果Table1的一行具有group
= 69,则当且仅当Table2中存在group = 69的行时,才应删除该行。

感谢您的任何帮助。


阅读 200

收藏
2021-05-10

共1个答案

admin

我认为这是您想要的:

DELETE FROM `table1`
WHERE `group` in (SELECT DISTINCT `group` FROM `table2`)
2021-05-10