select DISTINCT student.* from sc, studentwhere sc.CId in (select CId from sc where SId='01')and sc.SId = student.SId
时间: 2024-08-16 11:02:19 浏览: 44
这个SQL查询语句从两个表`sc`和`student`中选择唯一的(`DISTINCT`)学生信息(`student.*`)。它基于特定条件进行筛选:
1. `sc.CId in (select CId from sc where SId='01')`:这部分选取`sc`表中`SId`为'01'的学生的`CId`值。
2. `and sc.SId = student.SId`: 这个条件确保`sc`表中的`SId`与`student`表中的`SId`相匹配,即匹配到同一学生的记录。
所以,这个查询会返回所有SId为'01'的学生的全部独特(无重复)信息。以下是该查询的简化版示例(假设我们有相应的列名):
```sql
SELECT DISTINCT student.*
FROM sc
JOIN student ON sc.CId = student.SId
WHERE sc.SId = '01';
```
相关问题
有以下四张表: 1).学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2).课程表 Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号 3).教师表 Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名 4).成绩表 SC(SID,CID,score) --SID 学生编号,CID 课程编号,score 分数 请写出以下场景的sql语句 1)查询教师编号为T1001的教师所有学生的成绩信息和学生信息,并按照分数倒序排列 2)查询每个课程排名第一个学生信息和教师信息,并按照学生出生年月正序排列 3)查询每个学生的总分与学生信息,并以总分倒序排列
1. 查询教师编号为T1001的教师所有学生的成绩信息和学生信息,并按照分数倒序排列:
```
SELECT Student.SID, Sname, score
FROM Student, SC, Course
WHERE Student.SID = SC.SID AND SC.CID = Course.CID AND Course.TID = 'T1001'
ORDER BY score DESC;
```
2. 查询每个课程排名第一个学生信息和教师信息,并按照学生出生年月正序排列:
```
SELECT Course.CID, Cname, Tname, Student.SID, Sname, Sage
FROM Course, Teacher, Student, SC
WHERE Course.TID = Teacher.TID AND Course.CID = SC.CID AND Student.SID = SC.SID AND
(SELECT COUNT(DISTINCT score) FROM SC AS SC2 WHERE SC2.CID = SC.CID AND SC2.score > SC.score) < 1
ORDER BY Sage;
```
3. 查询每个学生的总分与学生信息,并以总分倒序排列:
```
SELECT Student.SID, Sname, SUM(score) AS total_score
FROM Student, SC
WHERE Student.SID = SC.SID
GROUP BY Student.SID, Sname
ORDER BY total_score DESC;
```
--1.学生表 Student(Sld,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名Sage出生年月Ssex学生性别 --2.课程表 Course(Cld,Cname,Tld) --Cld课程编号,Cname课程名称Tld教师编号 --3.教师表 Teacher(Tld,Tname) --TId 教师编号Tname 教师姓名 :--4.成绩表 SC(Sld,CIdscore) --SId学生编号Cld课程编号score分数 day01 10查询没学过"张三"老师讲授的任一门课程的学生姓名 29.查询任何一门课程成绩在70分以上的姓名、课程名称和分数
查询没学过"张三"老师讲授的任一门课程的学生姓名:
```
SELECT DISTINCT Student.Sname
FROM Student, Course, Teacher, SC
WHERE Student.SId = SC.Sld
AND Course.CId = SC.Cld
AND Course.Tld = Teacher.TId
AND Teacher.Tname != '张三';
```
查询任何一门课程成绩在70分以上的姓名、课程名称和分数:
```
SELECT Student.Sname, Course.Cname, SC.score
FROM Student, Course, SC
WHERE Student.Sld = SC.Sld
AND Course.CId = SC.Cld
AND SC.score >= 70;
```
阅读全文