student中没有score只有sc表中有成绩怎么求
时间: 2023-06-08 18:07:48 浏览: 40
您可以使用 SQL 的 JOIN 操作来将两个表连接起来,并通过学生表中的学生 ID 和成绩表中的学生 ID 实现相互匹配。具体地,您可以使用以下 SQL 查询语句来查询每个学生的成绩:
SELECT st.id, st.name, sc.score
FROM student st
INNER JOIN score sc
ON st.id = sc.student_id;
相关问题
但是student和score是两个表诶,tsudent表里面没有cno列
非常抱歉,我的回答有误。您是正确的,student表中没有cno列,而是score表中存在cno列。
在这种情况下,如果要在子查询中使用外部查询定义的表别名,需要使用表的别名加上列名的方式来引用列,例如:
```
SELECT sno, sname
FROM student s
WHERE sno <> '103' AND
cno IN (SELECT sc.tno FROM score sc WHERE sc.sno = '103')
GROUP BY sno
HAVING COUNT(*) = (SELECT COUNT(*) FROM score WHERE sno = '103');
```
在子查询中,通过 score 表别名 sc 引用 tno 列和 sno 列,通过 student 表别名 s 引用 sno 列和 sname 列。这样写也是合法的,而且更加规范和易于理解。再次感谢您的指正!
student表、course表、score表
好的,那我来为你写一下查询语句:
```
SELECT s.name, COUNT(*) AS count
FROM student s, score sc, course c
WHERE s.id = sc.student_id AND c.id = sc.course_id AND sc.score > 70
GROUP BY s.id
HAVING count > 0;
```
这个查询语句会返回成绩在70分以上的学生姓名以及他们大于70分的课程门数。其中,`student` 表存储学生信息,`course` 表存储课程信息,`score` 表存储学生课程成绩信息。
请注意,以上的查询语句只是一个示例,具体查询语句需要根据数据库表结构和数据情况进行调整。