1
我在計算使用交叉連接的其中一個查詢的結果數時出現問題。當MySQL中涉及交叉連接時,COUNT如何表現?
的數據收集查詢是
SELECT CF.*, C.Type AS Ctype, C.Resp AS Resp
FROM Campaigns C, CampaignEntities CF
WHERE C.clientId = '10' AND LOWER(C.Resp) in ('resp1','resp2','resp3')
ORDER BY entityCode DESC
和它正確地返回符合標準的行。
然而,改變它時,得到適合的行數:
SELECT COUNT(*) as RowNr
FROM Campaigns C, CampaignEntities CF
WHERE C.clientId = '10' AND LOWER(C.Resp) in ('resp1','resp2','resp3')
ORDER BY entityCode DESC
我得到數以百萬計的(基本上不應用任何的WHERE條件連接結果)。
任何想法爲什麼它的行爲如此,或者我怎麼可能得到正確的數字?
你就不能使用你的API NUM_ROWS()方法的第一個查詢? –
這仍然不能解釋它爲什麼顯示這種行爲。事實上,在我的盒子裏它並沒有。所以也許你應該用樣本數據創建一個簡化的測試用例。 – AndreKR
你會得到COUNT(C. *)x COUNT(CF. *)的行,因爲你根本沒有加入或過濾這兩個表。 – joocer