我有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
任何有关如何编写此查询的帮助将不胜感激!
答案 0 :(得分:2)
这根本不复杂,你应该通过阅读一些基本的SQL教程来自己解决这个问题! 我会给你一些提示。
SELECT ______,
sum(_____)
FROM _____ ba_us
JOIN _____ ba USING(____id)
JOIN _____ us USING(____id)
GROUP BY _____