我需要比较2个表来找到重复,但这些字段允许重复。SQL:比较两个表与重复
For Example:
Tbl1:
455
7991
7991
Tbl2:
455
7991
7991
7991
我需要编写一个查询,显示有一个额外的7991在表2中我尝试了右连接,但它仍然找到了比赛,因此不能正常工作。如果有人能指出我正确的方向,我将不胜感激。谢谢!!
我需要比较2个表来找到重复,但这些字段允许重复。SQL:比较两个表与重复
For Example:
Tbl1:
455
7991
7991
Tbl2:
455
7991
7991
7991
我需要编写一个查询,显示有一个额外的7991在表2中我尝试了右连接,但它仍然找到了比赛,因此不能正常工作。如果有人能指出我正确的方向,我将不胜感激。谢谢!!
SELECT t1.colname
FROM (SELECT colname
, COUNT(colname) AS colCount
FROM tbl1
GROUP BY colname
) t1
INNER JOIN (SELECT colname
, COUNT(colname) AS colCount
FROM tbl2
GROUP BY colname
) t2 ON t1.colname = t2.colname
AND t1.colCount <> t2.colCount
+1这看起来像我喜欢MS Access的正确方法。我编辑了SQL,因为我不认为Access的数据库引擎接受JOIN作为INNER JOIN的同义词。如果你想要别的东西,请更改它。如果它不能像写入那样工作,我会将't1.colCount <> t2.colCount'移动到WHERE子句。 – HansUp
完美工作,谢谢! – user1018766
如果你的数据库支持FULL OUTER JOIN(不是MySQL的)这会给你所有的两个表之间的差异:
SELECT
T1.x,
COALESCE(T1.cnt, 0) AS T1_count,
COALESCE(T2.cnt, 0) AS T2_count
FROM
(
SELECT x, COUNT(*) AS cnt
FROM Tbl1
GROUP BY x
) T1
FULL OUTER JOIN
(
SELECT x, COUNT(*) AS cnt
FROM Tbl2
GROUP BY x
) T2
ON T1.x = T2.x
WHERE T1.cnt <> T2.cnt
感谢您的快速响应!我现在就开始吧。 – user1018766
什么RDBMS是这个呢? –
这是您在表中唯一的价值,7991的其他值是不同的? – GregM
这是用于Microsoft Access的。我尝试了下面的代码,但他们没有解决。我不知道我理解你的问题格雷格? – user1018766