现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?
1.首先我们设计表:
我们分析"每个用户有多个成就,某个成就会被多人拥有",这是典型的多对多关系.这样我们设计表就需要一个中间表.
user表:
id | sex | name |
1 | 0 | 张三 |
2 | 1 | 李四 |
achievement成就表:
id | ach_name |
1 | 青铜 |
2 | 王者 |
user_achievement关联表
id
uid
achievementid
1
3
2
2
4
1
2.查询
链表查询:
select u.sex,a.ach_name,count(*) from user_achievement ua inner jion user u inner jion achievement a on ua.uid=u.id on ua.achevementid=a.id group by a.ach_name,u.sex;
有什么问题吗?欢迎评论
标签:成就,name,ach,sex,数据表,user,achievement From: https://blog.51cto.com/u_15565664/5757425