SQL 带有 NOT IN 子句的 DELETE 查询不起作用
SQL DELETE query with NOT IN clause not working
我有一个简单的删除查询我有两个表 table1 和 table2
查询是
DELETE FROM table1
WHERE end_time NOT IN (SELECT end_time
FROM table2
WHERE comp_name = 'component')
AND id = 'id'
查询没有删除记录我在这里遗漏了什么我试图用第二个更改第一个条件但它删除而不检查条件 2
这里有哪些选择?
我想知道这里的实际问题是什么,查询运行没有错误,但它不正确。
可能 alias
应该可以解决您的问题,因为这两个表具有相同的列名 end_time
。 Outer query
列可以在可能是问题的 subquery
中引用。
DELETE FROM table1
WHERE end_time NOT IN (SELECT b.end_time
FROM table2 B
WHERE b.comp_name = 'component')
AND id = 'id'
更新: 尝试删除,因为您的子查询中可能有 null
个值,而 NOT IN
将失败。检查这个 post link
DELETE a
FROM table1 a
WHERE NOT EXISTS (SELECT 1
FROM table2 B
WHERE b.comp_name = 'component'
AND a.end_time = b.end_time)
AND id = 'id'
我有一个简单的删除查询我有两个表 table1 和 table2
查询是
DELETE FROM table1
WHERE end_time NOT IN (SELECT end_time
FROM table2
WHERE comp_name = 'component')
AND id = 'id'
查询没有删除记录我在这里遗漏了什么我试图用第二个更改第一个条件但它删除而不检查条件 2
这里有哪些选择?
我想知道这里的实际问题是什么,查询运行没有错误,但它不正确。
可能 alias
应该可以解决您的问题,因为这两个表具有相同的列名 end_time
。 Outer query
列可以在可能是问题的 subquery
中引用。
DELETE FROM table1
WHERE end_time NOT IN (SELECT b.end_time
FROM table2 B
WHERE b.comp_name = 'component')
AND id = 'id'
更新: 尝试删除,因为您的子查询中可能有 null
个值,而 NOT IN
将失败。检查这个 post link
DELETE a
FROM table1 a
WHERE NOT EXISTS (SELECT 1
FROM table2 B
WHERE b.comp_name = 'component'
AND a.end_time = b.end_time)
AND id = 'id'