回答
您需要在原始表创建一个唯一的密钥(它可以只是一个序列号),并且你可以选择匹配或不匹配的记录(25%或相反)
我强烈推荐使用自动增加的ID列,
但如果你不能这样做:
DELETE FROM WHERE a.c1 =(SELECT c1 FROM b)AND a.c2 =(SELECT c2 FROM b)AND a.c3 =(SELECT c3 FROM b)
对不起,刚才意识到它只适用于一行...
好吧,那么我得到的仅仅是制造一个ID列,对不起......
要查看所有行A
除了那些在B
:
SELECT * FROM A
WHERE (field1, field2, ..., fieldN) NOT IN
(SELECT *
FROM B
) ;
要真正从表中删除A
在B
中的行:
DELETE FROM A
WHERE (field1, field2, ..., fieldN) IN
(SELECT *
FROM B
) ;
@Conrad:它工作在我的MySQL(5.0.51)副本中。你测试过哪个版本? – 2011-04-21 08:10:59
我有5.1它没有为我工作 – osmanabi 2011-04-21 08:56:40
我的错误,我做了一个非编辑,所以我可以改变我的投票,我删除了我的评论 – 2011-04-21 15:10:25
鉴于您正在比较多个字段,您需要使用exists或joi ñ。因为你正在寻找删除它更容易的只是使用存在。
delete from
Tablea
Where
Exists(
Select 1
from tableb
where tablea.fielda = tableb.fielda
And tablea.fieldb = Tableb.fieldb
And...)
我有一个非常类似的要求,你除了矿山,B只是A. 的一个子集。如果你还在寻找一个答案:
SELECT * FROM A WHERE NOT EXIST
(SELECT * FROM B WHERE A.field1 = B.field1 AND A.field2 = B.field2 etc)
您需要指定与在A和B上进行内部连接相同的条件。
- 1. 从一个表中减去另一个表中的总和
- 2. SML:从另一个列表中减去一个列表
- 3. Mysql从另一个表中减少值
- 4. 如何从另一个表中“减去”一张表?
- 5. 一个。减去从另一个
- 6. 减去一个查询从另一个
- 7. 如何只从一个表中减去另一个表中的行
- 8. MySQL - 从另一个减去一个查询集
- 9. 从另一个图像中减去另一个图像
- 10. 如何从同一个表中的另一行中减去一行?
- 11. 一个表中的值减去另一台价值
- 12. MySQL的:从另一个表
- 13. 从另一个文件中减去一个文件中的行
- 14. 按日期在MySQL中从另一个行中减去另一行
- 15. 安卓减去从另一个
- 16. UIBezierPath从另一个UIBezierPath减去
- 17. 如何从另一个使用opencv从另一个框架中减去一帧
- 18. MySQL:如何从另一个查询中减去JOIN的结果?
- 19. 从data.frame中减去另一个data.frame中的列表中的列表
- 20. 根据Mysql中同一行中的另一个值减去值
- 21. 如何在添加到另一个表时从一个表中减去一个值?
- 22. 从一个表的列到另一个表的列的mysql数据减法
- 23. 从另一个数组中减去一个数组
- 24. 从另一个arrayList中减去一个arrayList
- 25. 从另一个数据框中减去一个数据框
- 26. C - 从另一个字符串中减去一个字符串
- 27. 如何从另一个数组中减去一个数组?
- 28. MySQL的:如何从一个数中减去一个百分比
- 29. 从Python中列表中的每个数字减去一个值?
- 30. 在MySQL中将值从一个表复制到另一个表
当你说减去时我很困惑。你是指过滤器吗?如果你在另一个表格上过滤一个表格,你需要决定哪一列或哪两列表格相关联,以便根据你的过滤器模式。 – RetroCoder 2011-04-21 00:45:21
是的,我想从A中筛选出B中已有的所有数据A – osmanabi 2011-04-21 00:49:50
您想从A表中删除出现在B中的任何字段,因此不再有公共条目了吗? – 2011-04-21 00:50:14