牛客网刷题学习SQL

文章讲述了如何使用SQL的INNERJOIN和LEFTJOIN查询来自浙江大学的用户在答题平台上的详细回答情况。给出的例子显示了如何基于设备ID连接两个表格并筛选出指定大学的用户数据,结果按question_id升序排序。
摘要由CSDN通过智能技术生成

SQL21 浙江大学用户题目回答情况

描述
题目:现在运营想要查看所有来自浙江大学的用户题目回答明细情况,请你取出相应数据

示例 :question_practice_detail
id device_id question_id
result
1 2138 111 wrong
2 3214
112 wrong
3 3214
113 wrong
4 6543 114 right
5 2315 115 right
6 2315 116 right
7 2315 117 wrong
第一行表示:id为1的用户的常用信息为使用的设备id为2138,在question_id为111的题目上,回答错误

最后一行表示:id为7的用户的常用信息为使用的设备id为2135,在question_id为117的题目上,回答错误

示例:user_profile
id device_id gender age university gpa active_days_within_30
question_cnt
answer_cnt
1 2138 male 21 北京大学 3.4 7 2 12
2 3214 male
复旦大学 4.0 15 5 25
3 6543 female 20 北京大学 3.2 12 3 30
4 2315 female 23 浙江大学 3.6 5 1 2
5 5432 male 25 山东大学 3.8 20 15 70
6 2131 male 28 山东大学 3.3 15 7 13
7 4321 female 26 复旦大学 3.6 9 6 52
第一行表示:id为1的用户的常用信息为使用的设备id为2138,性别为男,年龄21岁,北京大学,gpa为3.4在过去的30天里面活跃了7天,发帖数量为2,回答数量为12
。。。
最后一行表示:id为7的用户的常用信息为使用的设备id为4321,性别为男,年龄26岁,复旦大学,gpa为3.6在过去的30天里面活跃了9天,发帖数量为6,回答数量为52

根据示例,你的查询应返回以下结果,查询结果根据question_id升序排序:

解释:
根据题目的数据只有1个浙江大学的用户,那么把浙江大学这个用户所有答题数据查询出来就行

使用关键字INNER JOIN ON和left join on

SELECT qpd.device_id, qpd.question_id, result
FROM question_practice_detail qpd
inner JOIN user_profile up ON qpd.device_id = up.device_id and up.university="浙江大学"
order by qpd.question_id
SELECT qpd.device_id, qpd.question_id, result
FROM question_practice_detail qpd
left JOIN user_profile up ON qpd.device_id = up.device_id
where up.university = "浙江大学" 
order by qpd.question_id

最后总结一下:
关键字INNER JOIN ON和left join on的区别
INNER JOIN 和 LEFT JOIN 都是 SQL 中的 JOIN 类型,它们都可以用于连接两个表。它们之间的区别在于:

  • INNER JOIN 只返回两个表中联结字段相等的行。所以on后面可以添加多个条件
  • LEFT JOIN 返回包括左表中的所有记录和右表中联结字段相等的记录,如果右表中没有匹配的记录,则对应的字段值为 NULL。on后面只能写左表和右表关联的条件

where:用来筛查行 ,在查询执行前应用, having:用来筛查组,在查询执行后应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈毓辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值