MySQL 连接/ join 的用法及其细节

在日常工作刷题或其他情形时候我们经常会需要将多个表连接的情况,多数情况下我们都会使用jion将表连接起来再进行字段的选择,今天我会以mysql为例来讲解join隐藏的细节

我们可以看到连接语法如下

select [字段1、字段2、字段3...]
from table1 as alias1
<inner、left、right、outer> join
table2 as alias2
on alias1.字段 = alias2.字段

 当所选字段有歧义时,需要以别名指定字段


牛客网MySQL题目-SQL23 统计每个学校各难度的用户平均刷题数

运营想要计算一些参加了答题的不同学校、不同难度的用户平均答题量,请你写SQL取出相应数据

 

 

思路:

第一步找出需要展示的字段 university、difficult_level 以及平均答题数量[答题数量/答题个数]

第二步进行表合并,将三张表进行内连

第三步通过university、和difficult_level排序

select university,difficult_level,count(qd.question_id)/count(distinct up.device_id) 
from question_detail as qd 
inner join question_practice_detail as qpd 
on qd.question_id = qpd.question_id
inner join user_profile as up 
on up.device_id = qpd.device_id
group by university,difficult_level

 


SQL22 统计每个学校的答过题的用户的平均答题数 

select university,count(question_id)/count(distinct up.device_id) 
from question_practice_detail as qpd 
inner join user_profile as up 
on qpd.device_id=up.device_id  
group by university 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Weber77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值