gpt4 book ai didi

mysql - 用于查找有权访问最多类(class)房间的两位教师的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 05:47:06 24 4
gpt4 key购买 nike

我是 sql 查询的新手,所以我不知道如何创建准确的 SQL。

我尽力了,但我在网上找不到任何类似的例子,请在这里帮助我。

数据架构如下:

User(userID, username password, email, , userType)

Course(courseID, courseTitle)

Enroll(userID, courseID)

用户可以访问的类(class)房间;请注意,用户包括各种用户,例如教师和管理员

Material(materialID, materialText, teacherUserID, courseID)

问题:

找到可以访问最多类(class)教室的两位教师。如果出现平局,请选择用户 ID 较小的那些。列出两位教师的用户 ID、电子邮件和他/她可以访问的类(class)房间数量。**

问题是:

  1. SELECT userid, email, MIN (userid)我怎样才能具体找到 2 个较小的用户 ID,我应该选择哪个表来查找类(class)房间?在这种情况下我必须使用 COUNT 吗?

  2. FROM user JOIN enroll ON (user.usertype=enroll.userid)由于enroll_table无法识别userID是teacher还是administrator,如果我使用JOIN,是否可以找到我想要的结果?

  3. 哪里....我不知道如何具体找到两个老师并确保他们有平局

  4. 我还必须使用 GROUP BY 和 ORDER BY 吗?

最佳答案

刚刚看到您尝试的查询。查看如何格式化代码,使其从文本中脱颖而出。但你的开始是正确的。虽然我们没有完整的信息,但请尝试以下操作: enter image description here

enter image description here

enter image description here

enter image description here

select user.userid,user.username, count(*) as cnt 
from enroll
join user on user.userid=enroll.userid
where user.usertype="teacher"
group by user.userid
order by cnt DESC;

enter image description here

因此,玛丽教授了三门类(class)并取得了领先。由于您只想要前两名,因此您可以添加 LIMIT 2 行以获取最多产的两位老师。

对于初学者来说最难理解的部分是group by子句,它产生聚合,并且需要在第一个像count(*)子句这样的东西线。单独阅读此内容并为自己制作一个更小的示例,以便您更好地理解这一点。

关于mysql - 用于查找有权访问最多类(class)房间的两位教师的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com