首页 > 数据库 >现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?

现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?

时间:2022-10-14 16:40:57浏览次数:46  
标签:成就 name ach sex 数据表 user achievement


       现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条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

相关文章