dragon8899 2014-08-28 03:36
浏览 29
已采纳

PHP代码列出所有具有总值的用户从其他表中收集

table A

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

table B

--------------------------------------
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

table C

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

table D

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

how can I view the total value of value1 and value2. example: I want my list view page look like this.

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

pls. help.

  • 写回答

1条回答 默认 最新

  • dongyukang7006 2014-08-28 04:04
    关注

    Here's one approach, to obtain the specified result using a SQL query (independent of any processing in 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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路