2013-04-24 80 views
1

我想从表中删除他们不存在于另一个表中的清单。 我能够与选择列表:从一个表中删除哪里的色彩不在另一个表中

SELECT count(mlsnum) as oldRecords 
FROM coordinates 
WHERE mlsnum NOT IN 
(SELECT mlsnum 
FROM RETS_Listings_full) 

但是当我尝试删除清单,我不能

delete FROM coordinates t1 
LEFT JOIN RETS_Listings_full t2 
ON t2.MLSNUM = t1.MLSNUM 
WHERE t2.mlsnum IS NULL 

错误说 - 消息102,级别15,状态1 ,第1行 't1'附近语法不正确。

回答

1

可以检索mlsnum列表,并删除这种方式

DELETE FROM coordinates 
WHERE mlsnum IN (
    SELECT mlsnum 
    FROM coordinates 
    WHERE mlsnum NOT IN (
    SELECT mlsnum 
    FROM RETS_Listings_full) 
) 
+0

感谢正确的语法,这个工作。生病除了它在8分钟:) – Dashsa 2013-04-24 15:43:13

1
delete from mytable where somecommonid not in(select id from myothertable) 
2

...他们不存在...

你说的很接近解决方案:使用NOT EXISTS

DELETE FROM coordinates t1 
WHERE NOT EXISTS 
(
    SELECT 1 FROM RETS_Listings_full t2 
    WHERE t1.mlsnum = t2.mlsnum 
) 
+0

感谢你 - 干净,简单! – Dashsa 2013-04-24 15:44:00

0

你的第二个查询

DELETE t1 
FROM coordinates t1 LEFT JOIN RETS_Listings_full t2 ON t2.MLSNUM = t1.MLSNUM 
WHERE t2.mlsnum IS NULL 
相关问题