我有兩個包含類似數據的數據庫表 - 其中一個是進程完成的工作量,另一個是該進程發生的錯誤數量。從mySQL查詢中收集兩個單獨的列結果
我想顯示正確的第一次工作的百分比。
我通過工藝計算的項目數查詢:
SELECT Counter.Process, count(Counter.Process) AS count
FROM Counter WHERE (TIME BETWEEN '2012-07-01 00:00:00' AND '2012-07-06 23:59:59')
GROUP BY Counter.Process
ORDER BY count DESC
上面給了我類似的列表:
Process | count
-------------------
Process A | 40
Process B | 32
Process C | 102
Process D | 23
我有第二個表與它相同的字段用於記錄錯誤,稱爲「錯誤」。
通過使用相同的查詢(但明顯改變表名),我可以得到一個進程和錯誤的列表。
我想要做的是創建一個PHP網頁,顯示每個進程的錯誤百分比。
我的問題是,如果我分別創建兩個查詢,當我使用PHP Where循環遍歷它們時,我不知道如何使計算顯示百分比。
我試着在兩個SQL查詢之間使用UNION,但是我無法讓它顯示出針對該過程的兩個不同的計數讀數。
理想情況下,我想一個方法來顯示這樣的數據:
Process | Counter.count | Errors.count
Process A 40 2
Process B 32 0
Process C 102 18
Process D 23 8
我真的很感激任何意見/建議,我怎麼能做到這一點 - 如果你需要我的數據庫的詳細信息表,請讓我知道
感謝您閱讀
小號
不,他應該加入兩個表,使用內部連接,並獲得他需要的結果集。 – 2012-07-06 19:36:21
從我可以看到尼爾,你的建議確實是我需要的。真相,你能解釋一下加盟會提供哪些Neils解決方案沒有的?感謝您的幫助! – user1507535 2012-07-06 19:41:12
查詢沒有問題。如果你在流程專欄上有索引,那也很不錯。否則,聯接解決方案可能會更好。要使沒有索引的計數需要在第一個表上對組中返回的每一行的錯誤表執行全表掃描。在這種情況下,聯接解決方案可能會更好,因爲每個表只能掃描一次。如果表中的數據不是很大,那麼即使沒有索引,查詢也可以。 – 2012-07-06 19:55:05