gpt4 book ai didi

sql - 试图让我的删除语句工作

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:29 25 4
gpt4 key购买 nike

我想从一个表中删除行,基于另一个表中的列:

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;

问题是:由于我的子查询为所有行返回最小值,所有内容都被删除。

而且我不能在我的子查询中使用“group by”,因为那样我的比较是不允许的。

最佳答案

试试这个:

DELETE FROM Table1 
WHERE NOT EXISTS(SELECT 1
FROM Table2
WHERE Table2.i > 0
AND Table2.value = Table1.value)

关于sql - 试图让我的删除语句工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com