2010-06-09 100 views
0
  1. SELECT COUNT(*)FROM表1 T1
  2. SELECT COUNT(*)FROM表1 T1凡t1.ID未在(選擇從表2 ID)FROM表1 T1
  3. SELECT COUNT(*)內加入表2 T2上t1.ID = t2.ID

結果: -爲什麼查詢結果有差異?

爲什麼從Ist查詢中當總數爲83時第二和第三查詢的結果有差異?難道不應該是要麼57(從第二查詢),如果3的結果是26

OR

21(從第3次查詢),如果第二次的結果是62? 有人可以幫我在這裏什麼是錯誤的我上面的選擇陳述?

+0

也許你應該看看數據,並決定什麼正確的答案應該是,因此也是h查詢是否給你錯誤的答案? – araqnid 2010-06-09 18:34:25

回答

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)

+0

謝謝先生。你是對的。我得到了我的答案 – Jango 2010-06-09 18:42:12

3

我的猜測:

  • ID列不是唯一

  • ID列可以爲NULL

1

你越來越多行對同一ID在#3。

2

我懷疑,查詢1和2是正確的,你必須在表2中的一些記錄具有相同ID,因此第三查詢表返回多個匹配的一些標識1.

1

您probaly有重複在ID第二個表中的記錄...因此你獲得更多...只是猜測......