为什么查询结果有差异?

时间:2010-06-09 18:27:05

标签: sql sql-server tsql

  1. SELECT count(*)FROM Table1 t1
  2. SELECT count(*)FROM Table1 t1其中t1.ID不在(从表2中选择ID)
  3. SELECT Count(*)FROM Table1 t1内连接Table2 t2 on t1.ID = t2.ID
  4. 结果: -

    1. 83
    2. 62
    3. 26
    4. 为什么第二次和第三次查询的结果与Ist Query的总数为83时有区别?如果第三个结果是26

      ,它不应该是57(来自第二个查询)

      OR

      21(来自第3次查询)如果第二次的结果是62? 有人可以帮我解决上面的选择陈述中的错误吗?

5 个答案:

答案 0 :(得分:3)

我的猜测:

  • ID列不是唯一的

  • ID列可能为NULL

答案 1 :(得分:2)

我怀疑查询1和2是正确的,并且表2中有一些具有相同ID的记录,因此第3个查询为表1中的某些ID返回多个匹配。

答案 2 :(得分:1)

您在#3中获得了相同ID的多行。

答案 3 :(得分:1)

你可能在ID的第二个表中有重复的记录...因此你得到更多......只是猜测......

答案 4 :(得分:1)

T1 IDs: 11, 12, 13
T2 IDs: 11, 11, 11

T1.Count = 3
T1.WhereNotInT2.Count = 2
T1.JoinT2.Count = 3

要解决您的问题,change Count(*)Count(DISTINCT T1.ID)