我有两个SQL表:TableA. 这两个表具有完全相同的列和类型。TableA包含更多的数据。TableB包含我想在TableA中删除的数据。在实际删除数据之前,我想首先从TableA中选择数据,以验证计数是否与TableB匹配。如何为这种类型的查询执行SELECT语句?有一件事使这有点棘手,那就是这些表不包含主键。我看到的许多与此相关的问题都涉及在查询中使用某种id。这在我的情况下是不可能的。一旦我知道这一点,我应该能够形成我的删除查询。列是姓名、年龄和性别。同样,这些列都不是主键。
运行
SELECT COUNT(*) FROM TableA
我得到一个计数100,000
运行
SELECT COUNT(*) FROM TableB
我得到一个计数10,000
我知道这个查询是错误的,但是当我运行SELECT COUNT(*) FROM TableA WHERE EXISTS (SELECT * FROM TableB)
我得到一个计数100,000. 我如何从表a中选择数据,使其与表b中的数据匹配?
低于10,000的查询返回两个表的公共记录。你可以用它
SELECT t1.name,t1.age,t1.gender
FROM TableA t1
LEFT JOIN TableB t2 ON t1.name = t2.name AND t1.age = t2.age AND t1.gender = t2.gender