gpt4 book ai didi

mysql - 在 MySQL 中 - 查找正在选修两门类(class)的学生姓名

转载 作者:行者123 更新时间:2023-11-29 12:31:35 25 4
gpt4 key购买 nike

这是我的表格:

Student(sid,sname,sex,age,year,qpa)
Dept(dname,numphds)
Prof (pname,dname)
Course (cno,cname,dname)
Major(dname,sid)
Section(dname,cno,sectno,pname)
Enroll(sid,grade,dname,cno,sectno)

我尝试了一些代码来解决“打印同时参加计算机科学类(class)和数学类(class)的学生的姓名”问题的解决方案。但是,我没有得到任何填充结果。

我的第一次尝试“未填充结果/无错误”:

SELECT student.sid, student.sname
FROM student
INNER JOIN major ON major.sid = student.sid
AND major.dname LIKE '%Computer Sciences%' AND '%Mathematics%'
GROUP BY student.sname, major.dname

第二次尝试“未填充结果/无错误”:

SELECT student.sid, student.sname, course.dname
FROM student, course
INNER JOIN major ON major.dname = course.dname
WHERE course.dname = '%Computer Sciences%'
AND course.dname = '%Mathematics%'

第三次尝试时出现错误消息:“‘where 子句’中存在未知列‘student.dname’”:

    SELECT student.sid, student.sname
FROM student
WHERE EXISTS (SELECT * FROM major WHERE major.dname=student.dname LIKE '%Computer Sciences%' AND '%Mathematics%')

有人可以给我指出正确的方向吗...

最佳答案

有几种方法可以做到这一点,尽管没有一种方法特别优雅。这是一种方法:

SELECT student.sid, student.sname
FROM student
INNER JOIN major ON major.sid = student.sid
WHERE major.dname = 'Computer Sciences'
AND student.sid IN (
SELECT student.sid
FROM student
INNER JOIN major ON major.sid = student.sid
WHERE major.dname = 'Mathematics'
)

这会获取所有数学专业学生的列表,然后比较该列表以查看哪些学生属于计算机科学专业。您最终会得到一份同时包含这两种类型的学生的列表。

关于mysql - 在 MySQL 中 - 查找正在选修两门类(class)的学生姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412888/

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