我整天都在看。我正在尝试从两个单独的表中的两列返回重复项列表。
在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和我都在计算具有多个条目的列一样。感谢您的帮助,欢呼。
答案 0 :(得分:7)
我建议先合并,然后汇总合并的结果:
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
首先删除重复项。
答案 1 :(得分:1)
我是一个初学者,这个答案可能也会对其他初学者有所帮助 我会尝试创建一个包含两个列的视图,以避免任何混乱
CREATE VIEW newTable as (SELECT T1.columnA, T2.columnB from table1 join table2 on T1.id=T2.id)
然后从该新表中进行选择
SELECT
columnA, columnB, COUNT(*)
FROM
newTable
GROUP BY
A, B
HAVING
COUNT(*) > 1
输出应该是在A列和B列中重复的行,而不是像下面的示例那样分别在每行中重复:
T1(我在商店中有的水壶)和T2(已购买的水壶),说我想查找同一个品牌的我有多少个水壶,以及这个品牌购买了多少次该品牌签证卡特别是... 这就是我的理解,您正在尝试做 该表应输出