需要查询以查找某些情况下的总距离吗?

时间:2018-10-11 07:48:00

标签: php sql mysqli phpmyadmin

我的数据库中有两个表,一个是类别,第二个是条目表。

我的类别表如下:

----------------------------------
| Cat_ID |  cat_type | cat_value |
----------------------------------
|  201   |  running  |     1     |
|  202   |  cycling  |     4     |
----------------------------------

我的条目表如下:

-------------------------------
| user_id | cat_ID | distance |
-------------------------------
|    1    |   201  |    50    |
|    1    |   201  |    50    |
|    1    |   202  |   100    |
|    1    |   202  |   100    |
|    2    |   201  |    10    |
|    2    |   201  |    10    |
-------------------------------

因此,现在我要为用户ID“ 1”求总距离,但是这里的一个条件是,根据cat_value中的类别表,对于201个类别,总和将除以1,对于202个类别,总距离将除以4。

我想要的总距离是((50 + 50)/ 1 +(100 + 100)/ 4)

那么,我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用联接和子查询

select 
    sum(t1.totald/c.cat_value) as total_distance
from 
    cat c
join
    (select 
         sum(distance) totald, user_id, cat_id 
     from 
         entry where user_id=1 --- if you just want for userid=1
     group by 
         user_id, cat_id) t1 on c.Cat_ID = t1.Cat_ID