我必须要表,比如A和B,以及一个公共列X,不是可空的。
查询1:
SELECT COUNT(*)
FROM A
WHERE A.X in
(SELECT distinct(B.X) FROM B)查询2:
SELECT COUNT(*)
FROM B
WHERE B.X in
(SELECT distinct(X) FROM A)查询3:
SELECT COUNT(*)
FROM A, B
WHERE A.X=B.X查询1结果5990。查询2和3结果6222。删除distinct或在顶部检查不同的计数并不会改变结果。有人能解释为什么所有查询的结果都不一样,因为它们都返回交集计数?
发布于 2013-03-21 00:34:03
假设A有A、B、C值
假设B有A、B、C、D、E、C值
在这种情况下,A的计数为3 (QRY1),而B的计数为4,因为c是重复的(QRY2),当您使用联接C时,C的所有值都会比A有更多的重复值,但它们可能会更少。再次4次(QRY3)
https://stackoverflow.com/questions/15537301
复制相似问题