这可能很容易,但现在是星期一早上。我有两张 table :
表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 |
忽略其他字段...我想要一个 SQL DELETE 语句,该语句将删除 Table1 中存在等于 Table1.group 的 Table2.group 的所有行。因此,如果 Table1 中的一行 group=69,当且仅当 Table2 中存在 group=69 的行时,才应该删除该行。
感谢您的帮助。
最佳答案
我想这就是你想要的:
DELETE FROM `table1`
WHERE `group` in (SELECT DISTINCT `group` FROM `table2`)
关于SQL 根据另一个表删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783784/