Mysql SQL-如果同一记录不在表Y中,则从表X中删除该记录
很抱歉再次对删除相同的记录大惊小怪,但我找不到任何解决方案:( 我需要这样的东西:Mysql SQL-如果同一记录不在表Y中,则从表X中删除该记录,mysql,sql,sql-server,Mysql,Sql,Sql Server,很抱歉再次对删除相同的记录大惊小怪,但我找不到任何解决方案:( 我需要这样的东西: 如果从表1中选择3列值 不等于表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 EXI
如果从表1中选择3列值
不等于表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'
感谢您的帮助或任何提示!!您可能需要where()而不是in()
您可以在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'
注意select中比较表2和表1中的值的过滤器
如果userid也在表2中,您可能希望将其添加到WHERE-allow中
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'
请尝试上面的代码。这是sql server的问题吗?
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'
DELETE y
FROM X
LEFT JOIN Y
ON
X.COL1=Y.COL1
AND
X.COL2=Y.COL2
AND
X.COL3=Y.COL3
WHERE
Y.COL1 IS NULL