2012-11-09 22 views
2

我正試圖將兩個表連接到我的查詢並計算每個連接的匹配行數。它似乎回來與錯誤的結果,但。這似乎是結果加倍。下面是該查詢在兩個單獨的JOIN中的MySQL COUNT行給出錯誤的結果

SELECT *, COUNT(car_id) AS numCars, COUNT(van_id) AS numVans 
      FROM company_branch 
      LEFT JOIN car ON car_branchid = company_branch_id 
      LEFT JOIN van ON van_branchid = company_branch_id 
      WHERE company_branch_userid = 1 

      GROUP BY company_branch_id, 
      ORDER BY company_branch_active DESC, company_branch_name ASC 

回答

3

我假設car_id是在car表的主鍵和van_id是在van表的主鍵。在這種情況下,請使用DISTINCT分別獲取每個組中的計數。試試這個:

SELECT *, COUNT(DISTINCT car_id) AS numCars, COUNT(DISTINCT van_id) AS numVans 
     FROM company_branch 
     LEFT JOIN car ON car_branchid = company_branch_id 
     LEFT JOIN van ON van_branchid = company_branch_id 
     WHERE company_branch_userid = 1 

     GROUP BY company_branch_id, 
     ORDER BY company_branch_active DESC, company_branch_name ASC 
+0

這就是整理它,謝謝! – Chris

+1

對我來說也工作過,也謝謝你的解釋。現在我更聰明瞭,謝謝你 –