首页 > 解决方案 > 从不同表中的两列获取重复项

问题描述

我整天都在看这个。我正在尝试从两个单独的表中的两列返回重复项列表。

在 MYSQL 中,获得完整外部连接的唯一方法似乎是使用 UNION,我已经尝试过:

select mobile from firstTable
group by mobile
having count(mobile) > 1
union all
select mobile from secondTable
group by mobile
having count(mobile) > 1;

但是,这会在同一个表中得到重复,并且不考虑跨表重复。我也尝试过连接,但是我不知道如何检查不同列中的重复项?

我的意图是获得重复项,就好像两列都在 1 和我正在计算具有多个条目的列一样。任何帮助表示赞赏,欢呼。

标签: mysqlsql

解决方案


我建议先进行联合,然后汇总组合结果:

SELECT mobile
FROM
(
    SELECT mobile FROM firstTable
    UNION ALL
    SELECT mobile FROM secondTable
) t
GROUP BY mobile
HAVING COUNT(mobile) > 1;

注意:如果在两个表中的每一个中,给定mobile值可能出现多次,则使用SELECT DISTINCT mobile FROM some_table来首先删除重复项。


推荐阅读