使用單一 MySQL 查詢整合多個表格中的資料
最初,使用多個子查詢聚合來自各個表的資料會產生不準確的結果,只有第一列顯示正確的值。 為了解決這個問題,需要更有效的方法。
最有效的解決方案涉及單一資料表查詢中的條件聚合。 這種方法避免了多個子查詢的限制並產生準確的結果。 以下查詢示範了此技術:
<code class="language-sql">SELECT DAY_IN, COUNT(*) AS arr, SUM(IF(PAT_STATUS LIKE '%ong%', 1, 0)) AS ONG1, SUM(IF(PAT_STATUS LIKE '%rtde%', 1, 0)) AS RTED, SUM(IF(PAT_STATUS LIKE '%pol%', 1, 0)) AS POL1, SUM(IF(PAT_STATUS LIKE '%para%', 1, 0)) AS para FROM t_hospital WHERE DAY_IN BETWEEN @start_check AND @finish_check AND RES_DATE BETWEEN @start_res AND @finish_res AND ID_daily_hos = @daily_hos GROUP BY DAY_IN</code>
此查詢使用 IF()
函數根據 PAT_STATUS
列有條件地計算出現次數。 每行僅計數一次,構成單一聚合列。然後,SUM()
函數對每個 DAY_IN
.
這種單一查詢方式提供了一個簡潔、準確的聚合約表不同列資料的方法,解決了原來多子查詢方式結果不準確的問題。
以上是如何在單一 MySQL 語句中有效聚合不同表中的多個欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!