我正嘗試使用連接來連接MS Access中的多個表以獲取計數值。但我不知道它給出錯誤的計數值。如果我嘗試單獨加入它們,那麼它會給我正確的計數值。SQL內部連接在MS ACCESS中給出不正確的計數值
我有3個表格。表2和表3是獨立的,並連接到表1.測試2和測試3基本上是文本值,我想對行進行計數。
表1(ID1(主鍵),名稱) 表2(ID2(主鍵),ID1(外鍵)的Test2) 表3(ID3(Orimary鍵),ID1(外鍵),Test3的)
,我從MS Access得到查詢下面給出:
SELECT Table1. ID1, Count(Table2.Test2) AS CountOfTest2, Count(Table3.Test3) AS CountOfTest3
FROM (Table1 INNER JOIN Table2 ON Table1.ID1 = Table2.ID2)
INNER JOIN Table3 ON Table1. ID1 = Table3.ID3
GROUP BY Table1.ID1;
但是這給了我錯誤的計數值。 有人可以幫助我嗎。
謝謝。
計數正在被1-M關係的加入連接誇大。因此,您需要在最終表連接之前通過內聯查詢/視圖來獲取計數,或者,如果訪問支持它,則爲count(Distinct table2。test2)'因此在連接之前統計不同的唯一字段值,從而消除由連接引起的重複。 – xQbert
只是爲了澄清@xQbert的陳述;它不是訪問問題,它在涉及一個或多個1-M關係的多個連接中是固有的和預期的行爲,在所有類型的SQL中都是如此。 – Uueerdo