在两个Mysql表中求和两列

use*_*801 9 mysql

我一直在寻找这个,但没有雪茄.烟雾开始从我的耳朵里冒出来.请帮忙

如何将两个表中的两列相加并按用户ID分组?

有两张桌子.

Recipe Table
recipeid   userid   recipe_num_views

Meals Table
mealsid   userid    meal_num_views 
Run Code Online (Sandbox Code Playgroud)

目标是按用户标识对表和组中的num视图求和

so for example
Recipe Table
1    3     4
2    4     6

Meal Table
1    3     2
2    4     5


select sum(recipe views)+sum(meal views) 
WHERE recipe.userid=meals.userid GROUP BY userid
Run Code Online (Sandbox Code Playgroud)

应该给

userid=3 , sum=6
userid=4, sum=11
Run Code Online (Sandbox Code Playgroud)

这给了一个更大的数字.

man*_*nji 13

SELECT recipe.userid, sum(recipe_num_views+meal_num_views) 
FROM Recipe JOIN Meals ON recipe.userid=meals.userid
GROUP BY recipe.userid
Run Code Online (Sandbox Code Playgroud)

编辑:

好的,从您的评论中,我了解到当您有用户3:4食谱3餐时,您将得到所有这些行的组合总和=>sum(recipes)*3 + sum(meals)*4

请尝试此查询:

select r.userid, (sum_recipe + sum_meal) sum_all
FROM
(select userid, sum(recipe_num_views) sum_recipe
FROM Recipe
GROUP BY userid) r
JOIN (
select userid, sum(meal_num_views) sum_meal
FROM Meals
GROUP BY userid) m ON r.userid = m.userid
Run Code Online (Sandbox Code Playgroud)