从 SQL Table 中删除基于另一个 table

Delete from a SQL Table based on another table

我有 2 个 SQL 表:TableATableB。这两个表都具有完全相同的列和类型。 TableA 包含更多数据。 TableB 包含我要在 TableA 中删除的数据。在实际删除数据之前,我想先 select TableA 中的数据以验证计数是否与 TableB 匹配。我将如何为这种类型的查询做一个 SELECT 语句?使这有点棘手的一件事是表不包含主键。我看到很多与此相关的问题都涉及在查询中使用某种 id。就我而言,这不是一个选择。一旦我知道这一点,我应该能够形成我的删除查询。这些列是姓名、年龄和性别。同样,这些列中的 none 是主键。

当我运行

SELECT COUNT(*) FROM TableA

我的计数是 100,000

当我运行

SELECT COUNT(*) FROM TableB

我的计数是 10,000

我知道这个查询是错误的,但是当我运行

SELECT COUNT(*) FROM TableA WHERE EXISTS (SELECT * FROM TableB)

我的计数是 100,000。我怎样才能 select TableA 中的数据,使其与 TableB 中的数据相匹配?

查询10000条以下returns两个表的共同记录。你可以使用它。

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