我的数据库中有两个表,一个是类别,第二个是条目表。
我的类别表如下:
----------------------------------
| 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)
那么,我该怎么做?
答案 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