我想根据另一个表中的列从表中删除行:
Table1: Table2:
value value, i
如果 table2.i 小于 1,则从 table1 中删除相应的行(但保留在 table2 中)。
问题是值不是唯一的,所以如果我有这个例如:
Table1 table2
+-------+ +-----------+
| value | | value | i |
+-------+ +-----------+
| 5 | | 5 | 0 |
| 3 | | 5 | 3 |
+-------+ | 3 | 0 |
| 3 | 0 |
+-----------+
值 3 应从表 1 中删除(因为表 2 中所有出现的 i<1)但值 5 应保留(因为表 2 中的 i=3 行)
到目前为止我的代码(不起作用):
DELETE FROM Table1, Table2
WHERE (SELECT MIN(Table2.i) FROM Table1, Table2
WHERE Table1.value = Table2.value) < 1;
问题是:由于我的子查询为所有行返回 min ,所有内容都被删除。
而且我不能在我的子查询中使用“分组依据”,因为这样我的比较是不允许的。