返回

mysql-如何在一个表中获取不在另一表中的重复记录?

发布时间:2022-08-17 05:42:56 344
# 数据库

我有如下表1和表2:

表1:

col1  col2
-------------
a1    b1
a2    b1
a3    b2
a4    b3
a5    b3
a5    b4
a5    b2

表2:

col2  col3
----------
b1    c1
b4    c2

为了获得表1中col2的所有重复条目,我编写了以下查询:

SELECT x.col1,x.col2
  FROM table1 x
  JOIN (SELECT t.col2
          FROM table1 t
      GROUP BY t.col2
        HAVING COUNT(t.col2) > 1) y ON y.col2 = x.col2

现在我想从上面的结果中筛选出表2中的条目

SELECT x.col1,x.col2
  FROM table1 x
  JOIN (SELECT t.col2
          FROM table1 t
      GROUP BY t.col2
        HAVING COUNT(t.col2) > 1) y ON y.col2 = x.col2 where x.col2 not in (select col2 from table2)

我在样本表上看到了预期结果。有没有更有效的方法来实现同样的结果?还有我可能错过的案子吗?

谢谢

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像