复杂的MySQL查询代码

时间:2017-01-04 13:41:59

标签: mysql sql

我有3张桌子:

表1:徽章
列:badgeid(PrimaryKey),值

表2:用户
列:userid(PrimaryKey),名称

表3:Badge_User
列:userid(ForeignKey),badgeid(ForeignKey)
(一个用户永远不会有两次相同的徽章)

我需要一张桌子,以便为每个用户总结并显示所有徽章值。

例如:

   Table 1: Badge 
   | badgeid  value  |
   |   1      5      |
   |   2     10      | 
   |   3     15      |



   Table 2: User 
   | userid  name    |
   |   1      Bob    |
   |   2      Mike   |
   |   3      Duke   |
   |   4      Craig  |



   Table 3: User_Badge
   | userid  badgeid |
   |  1        1     |
   |  1        2     |
   |  2        3     |
   |  2        2     |
   |  2        1     |
   |  3        3     |
   |  1        1     |

我希望查询结果如下并按最高sum_of_badge_value分类 查询:
userid,name,sum_of_badge_value
第1:2,迈克,30岁 第2行:1,鲍勃,15岁 第3行:3,杜克,15岁 row4:4,Craig,0

任何有关如何编写此查询的帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

这根本不复杂,你应该通过阅读一些基本的SQL教程来自己解决这个问题! 我会给你一些提示。

SELECT ______,
       sum(_____)
FROM _____ ba_us
JOIN _____ ba USING(____id)
JOIN _____ us USING(____id)
GROUP BY _____