我有兩個幾乎相同的查詢,一個是GROUP BY,一個沒有。結果非常不同。 GROUP BY查詢結果超過了非GROUP BY查詢結果的兩倍。MySQL - 爲什麼近2個相同的查詢會導致2個不同的結果? GROUP BY
查詢1:
SELECT table2.name, COUNT(DISTINCT(op.id))
FROM op INNER JOIN table1 ON table1.EID = op.ID
INNER JOIN table3 ON table3.id = table1.jobid
INNER JOIN table2 ON table2.id = table3.CatID
WHERE op.BID = 1
AND op.ActiveStartDate <= NOW()
AND op.ActiveEndDate >= NOW()
GROUP BY table2.name
ORDER BY COUNT(*) DESC;
問題2:
SELECT op.Type, COUNT(DISTINCT op.id)
FROM op
WHERE op.BID = 1
AND op.ActiveStartDate <= NOW()
AND op.ActiveEndDate >= NOW()
ORDER BY op.Type ASC;
這些應該導致同樣的結果。當玩弄它們時,一旦我從查詢1中刪除「GROUP BY」,結果是一樣的。如果我將「GROUP BY」放回查詢1中,結果會增加一倍以上。
編輯:似乎額外的INNER JOINS不影響結果,而是查詢1中的GROUP BY。如果我在查詢1中刪除GROUP BY,則兩個查詢之間的結果是相同的。如果我將GROUP BY添加回查詢1,結果會非常不同。
的交代? –
2個查詢的WHERE條件是相同的,我正在查看COUNT(DISTINCT op.id),因爲它應該是相同的結果....如果在查詢1中加入的表確實是準確的連接,爲什麼會DISTINCT ID計數是否增加?或者,我應該加入第二個查詢中的表格,雖然不必要? – Ken