mysql - SQL - 如果相同的记录不在表 Y 中,则从表 X 中删除记录

标签 mysql sql sql-server

很抱歉再次删除相同的记录大惊小怪,但我找不到任何解决方案:(

我需要这样的东西:

如果从表 1 中选择 3 列值
NOT 等于表 2 中的相同选择
比从表 2 中删除记录

这是我的方法:

DELETE FROM table2
INNER JOIN table1
ON table2.basketid = table1.basketid AND
table2.artid = table1.artid
WHERE table1.userid='007'

DELETE FROM table2
WHERE NOT EXISTS (
SELECT basketid, artid
FROM table1
)
AND userid ='007'

感谢您的帮助或任何建议!!

最佳答案

您可以在 SQL Server 中执行此操作

DELETE  t2
FROM    Table2 t2
WHERE   NOT EXISTS ( SELECT 1
                     FROM   Table1 t1
                     WHERE  t1.basketid = t2.basketid
                            AND t1.artid = t2.artid )
        AND t2.userid = '007'

注意选择中的过滤器,它比较表 2 和表 1 中的值

如果 userid 也在表 2 中,您可能还想将其添加到 WHERE 中

DELETE  t2
FROM    Table2 t2
WHERE   NOT EXISTS ( SELECT 1
                     FROM   Table1 t1
                     WHERE  t1.userid = t2.userid
                            AND t1.basketid = t2.basketid
                            AND t1.artid = t2.artid )
        AND t2.userid = '007'

关于mysql - SQL - 如果相同的记录不在表 Y 中,则从表 X 中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37172335/

相关文章:

php - 在映射器中注入(inject)数据库适配器

mysql - Ruby on Rails : How to update the view with a new query

java - Spring JDBC - 将 BLOB 数组传递给 SQL 函数

c# - 当我在 SQL Server Management Studio 中修改表值函数时,为什么它运行得更快?

SQL Server 加入不同数据类型的性能

sql-server - 为什么 t-SQL 按日期时间排序在 SQL SMS 中正确,但在 ASP Classic 输出中不正确?

sql - 如何将水平行转换为垂直 SQL Server

MySql 过程无法正确过滤字符串输入的查询结果

php - 如何使用php绕过XMPP Openfire服务器中的登录过程?

sql - 选择更新等待网络操作?