2014-08-28 36 views
0

表阿PHP代碼列表與合計值的所有用戶從其他表收集

----------------- 
a_id | user _a | 
----------------- 
1  |adam | 
2  |jose  | 
3  |adam | 
4  |adam | 
5  |anne | 
6  |jose  | 

表乙

-------------------------------------- 
b_id | user_b | value1 | value2 
-------------------------------------- 
1  |adam | 33   | 9 
2  |jose  | 46   |88 
3  |adam | 77   |21 
4  |adam | 81   |15 
5  |anne | 11   |67 
6  |jose  | 45   |6 

表C中

-------------------------------------- 
c_id | user_c | value1 | value2 
-------------------------------------- 
1  |adam | 33   | 9 
2  |jose  | 46   |88 
3  |adam | 77   |21 
4  |adam | 81   |15 

表d

-------------------------------------- 
d_id | user_d | value1 | value2 
-------------------------------------- 
1  |adam | 33   | 9 
2  |jose  | 46   |88 

如何查看value1和value2的總值。 例如:我希望我的列表視圖頁面看起來像這樣。

-------------------------------------------------------- 
user | total value of value1 | total value of value2 
--------------------------------------------------------- 
adam |415     | 99 
jose |183      | 270 
anne |11      | 67 

請提供。幫幫我。

+1

SO不是自由編碼服務。請顯示您嘗試過的內容,我們會幫助您解決問題。 – Barmar 2014-08-28 03:38:52

+0

提示:使用'UNION ALL'將三個表與值相結合,並使用SUM()和GROUP BY來計算總數。 – Barmar 2014-08-28 03:40:57

+0

我之前問過,這裏: http://stackoverflow.com/questions/12649119/select-total-of-childrens-in-multiple-tables-in-one-query-with-mysql – manix 2014-08-28 03:43:08

回答

1

這裏的一個方法中,以獲得使用SQL查詢(獨立於任何處理的PHP)指定的結果:

SELECT t.user_t  AS `user` 
    , SUM(t.value1) AS `total value of value1` 
    , SUM(t.value2) AS `total value of value2` 
    FROM (SELECT b.user_b  AS user_t 
       , SUM(b.value1) AS value1 
       , SUM(b.value2) AS value2 
      FROM table_b b 
      GROUP BY b.user_b 
      UNION ALL 
     SELECT c.user_c  AS user_t 
       , SUM(c.value1) AS value1 
       , SUM(c.value2) AS value2 
      FROM table_c c 
      GROUP BY c.user_c 
      UNION ALL 
     SELECT d.user_d  AS user_t 
       , SUM(d.value1) AS value1 
       , SUM(d.value2) AS value2 
      FROM table_d d 
      GROUP BY d.user_d 
     ) t 
GROUP BY t.user_t 
ORDER BY 2 DESC 
相關問題