我必须要表格,比如 A 和 B 以及一个不可为空的公共列 X 。
查询一:
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
或检查顶部的不同计数不会更改结果。有人可以解释为什么所有查询的结果都不相同,因为它们都返回交集计数?