常用sql多表查询

合集下载

sql多表联查语句

sql多表联查语句

sql多表联查语句SQL多表联查语句用于从多个表中检索相关数据。

通过使用JOIN 关键字,我们可以将多个表连接在一起,并通过共享的列或条件关联它们。

下面是一些常见的多表联查语句及其使用方法:1. 内连接(INNER JOIN):内连接返回两个表中匹配的行。

只有当两个表之间的连接条件满足时,才会返回结果。

```sqlSELECT column1, column2, ...FROM table1INNER JOIN table2ON table1.column = table2.column;```2. 左连接(LEFT JOIN):左连接返回左表中的所有行,以及与右表中匹配的行。

如果右表中没有匹配的行,则会返回NULL值。

SELECT column1, column2, ...FROM table1LEFT JOIN table2ON table1.column = table2.column;```3. 右连接(RIGHT JOIN):右连接返回右表中的所有行,以及与左表中匹配的行。

如果左表中没有匹配的行,则会返回NULL值。

```sqlSELECT column1, column2, ...FROM table1RIGHT JOIN table2ON table1.column = table2.column;```4. 全连接(FULL OUTER JOIN):全连接返回左右表中的所有行,如果在左表或右表中没有匹配的行,则会返回NULL值。

SELECT column1, column2, ...FROM table1FULL OUTER JOIN table2ON table1.column = table2.column;```5. 自连接(SELF JOIN):自连接是一种特殊的联接,它将表视为两个独立的实体,并通过共享的列将它们连接起来。

```sqlSELECT column1, column2, ...FROM table1JOIN table1 AS table2ON table1.column = table2.column;```除了以上提到的联接类型,还可以使用其他联接类型,如交叉连接(CROSS JOIN)、自然连接(NATURAL JOIN)等,根据具体需求选择适合的联接类型。

多表查询sql语句

多表查询sql语句

多表查询sql语句多表查询SQL语句是指在一个SQL语句中同时查询多个表格的数据。

这种查询方式可以让我们更加高效地获取需要的数据,从而提高数据处理的效率。

下面我将介绍一些常用的多表查询SQL语句。

1. INNER JOININNER JOIN是最常用的多表查询方式之一,它可以将两个或多个表格中的数据进行匹配,只返回匹配成功的数据。

例如,我们有两个表格:学生表格和成绩表格,它们之间有一个共同的字段——学生ID。

我们可以使用INNER JOIN语句来查询每个学生的成绩:SELECT , scores.scoreFROM studentsINNER JOIN scoresON students.id = scores.student_id;这个语句将返回每个学生的姓名和成绩。

2. LEFT JOINLEFT JOIN语句可以返回左边表格中的所有数据,即使在右边表格中没有匹配的数据。

例如,我们有一个学生表格和一个选课表格,它们之间有一个共同的字段——学生ID。

我们可以使用LEFT JOIN语句来查询每个学生选的课程:SELECT , FROM studentsLEFT JOIN coursesON students.id = courses.student_id;这个语句将返回每个学生选的课程,如果一个学生没有选课,那么它的课程名称将会是NULL。

3. RIGHT JOINRIGHT JOIN语句和LEFT JOIN语句相反,它可以返回右边表格中的所有数据,即使在左边表格中没有匹配的数据。

例如,我们有一个学生表格和一个成绩表格,它们之间有一个共同的字段——学生ID。

我们可以使用RIGHT JOIN语句来查询每个学生的成绩:SELECT , scores.scoreFROM studentsRIGHT JOIN scoresON students.id = scores.student_id;这个语句将返回每个学生的姓名和成绩,如果一个学生没有成绩,那么它的成绩将会是NULL。

多表查询sql语句

多表查询sql语句

多表查询SQL语句多表查询是在关系型数据库中进行查询操作时常用的一种技术,它可以实现在多个表之间进行数据的联合和合并,从而获得更丰富的查询结果。

本文将介绍多表查询的一些常用SQL语句,并提供相应的示例。

内连接(INNER JOIN)内连接是最常用的一种多表查询方式,它返回同时符合两个表中条件的记录。

内连接使用INNER JOIN关键字来实现,语法如下:SELECT列名FROM表AINNER JOIN表B ON表A.列=表B.列;其中,ON关键字后面的条件用来指定两个表连接时的关联条件。

下面是一个示例:SELECT employees.employee_name, departments.department_nameFROM employeesINNER JOIN departments ON employees.department_id = departments.departm ent_id;上述示例从employees表和departments表中联合查询了employee_name和department_name两列数据,使用department_id作为连接条件。

左连接(LEFT JOIN)左连接将返回左表中所有的记录,以及与其匹配的右表中的记录(如果有匹配的记录)。

左连接使用LEFT JOIN关键字来实现,语法如下:SELECT列名FROM表ALEFT JOIN表B ON表A.列=表B.列;下面是一个示例:SELECT employees.employee_name, departments.department_nameFROM employeesLEFT JOIN departments ON employees.department_id = departments.departme nt_id;上述示例从employees表和departments表中联合查询了employee_name和department_name两列数据,使用department_id作为连接条件。

mysql多表联合查询sql语句

mysql多表联合查询sql语句

mysql多表联合查询sql语句当我们需要从多个表中检索数据时,可以使用MySQL的多表联合查询语句。

多表联合查询可以通过使用JOIN子句将多个表连接起来,从而实现在一个查询中检索来自不同表的数据。

以下是一些常见的多表联合查询的SQL语句示例:1. 内连接(INNER JOIN):sql.SELECT.FROM table1。

INNER JOIN table2 ON table1.column_name =table2.column_name;2. 左外连接(LEFT JOIN):sql.SELECT.FROM table1。

LEFT JOIN table2 ON table1.column_name =table2.column_name;3. 右外连接(RIGHT JOIN):sql.SELECT.FROM table1。

RIGHT JOIN table2 ON table1.column_name =table2.column_name;4. 全外连接(FULL JOIN),MySQL不支持全外连接,但可以通过UNION操作符来模拟全外连接的效果。

5. 自连接(Self Join):sql.SELECT e1.employee_id, e1.employee_name,e2.employee_name AS manager.FROM employee e1。

LEFT JOIN employee e2 ON e1.manager_id = e2.employee_id;这些是一些常见的多表联合查询的SQL语句示例,通过这些语句可以实现从多个表中检索数据的目的。

在实际应用中,我们可以根据具体的业务需求和数据关系来选择合适的联合查询方式,以实现我们想要的数据检索和分析。

SQL语句多表查询

SQL语句多表查询

SQL语句多表查询:问题及描述:--1.学生表Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号--3.教师表Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名--4.成绩表SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数*/--创建测试数据create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10))insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男')insert into Student values('02' , N'钱电' , '1990-12-21' , N'男')insert into Student values('03' , N'孙风' , '1990-05-20' , N'男')insert into Student values('04' , N'李云' , '1990-08-06' , N'男')insert into Student values('05' , N'周梅' , '1991-12-01' , N'女')insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女')insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女')insert into Student values('08' , N'王菊' , '1990-01-20' , N'女')create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10))insert into Course values('01' , N'语文' , '02')insert into Course values('02' , N'数学' , '01')insert into Course values('03' , N'英语' , '03')create table Teacher(T# varchar(10),Tname nvarchar(10))insert into Teacher values('01' , N'张三')insert into Teacher values('02' , N'李四')insert into Teacher values('03' , N'王五')create table SC(S# varchar(10),C# varchar(10),score decimal(18,1))insert into SC values('01' , '01' , 80)insert into SC values('01' , '02' , 90)insert into SC values('01' , '03' , 99)insert into SC values('02' , '01' , 70)insert into SC values('02' , '02' , 60)insert into SC values('02' , '03' , 80)insert into SC values('03' , '01' , 80)insert into SC values('03' , '02' , 80)insert into SC values('03' , '03' , 80)insert into SC values('04' , '01' , 50)insert into SC values('04' , '02' , 30)insert into SC values('04' , '03' , 20)insert into SC values('05' , '01' , 76)insert into SC values('05' , '02' , 87)insert into SC values('06' , '01' , 31)insert into SC values('06' , '03' , 34)insert into SC values('07' , '02' , 89)insert into SC values('07' , '03' , 98)go--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数--1.1、查询同时存在"01"课程和"02"课程的情况select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数]from Student a , SC b , SC cwhere a.S# = b.S# and a.S# = c.S# and b.C# ='01'and c.C# ='02'and b.score > c.score--1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的情况(不存在时显示为null)(以下存在相同内容时不再解释)select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数]from Student aleft join SC b on a.S# = b.S# and b.C# ='01'left join SC c on a.S# = c.S# and c.C# ='02'where b.score >isnull(c.score,0)--2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数--2.1、查询同时存在"01"课程和"02"课程的情况select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数]from Student a , SC b , SC cwhere a.S# = b.S# and a.S# = c.S# and b.C# ='01'and c.C# ='02'and b.score < c.score--2.2、查询同时存在"01"课程和"02"课程的情况和不存在"01"课程但存在"02"课程的情况select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数]from Student aleft join SC b on a.S# = b.S# and b.C# ='01'left join SC c on a.S# = c.S# and c.C# ='02'where isnull(b.score,0) < c.score--3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩select a.S# , a.Sname , cast(avg(b.score) as decimal(18,2)) avg_scorefrom Student a , sc bwhere a.S# = b.S#group by a.S# , a.Snamehaving cast(avg(b.score) as decimal(18,2)) >=60order by a.S#--4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩--4.1、查询在sc表存在成绩的学生信息的SQL语句。

sql多表关联查询语句

sql多表关联查询语句

sql多表关联查询语句sql表关联查询是数据库管理系统中最常见也是最重要的操作,它能够在多个表中同时执行查询,让我们快速获取所需要的数据。

本文将介绍sql的多表关联查询,包括全部连接、部分连接和内连接。

1、全部连接全部连接是最常见的多表关联查询操作,它可以将查询的多个表的数据进行组合,从而获取所需要的信息。

全连接的语法格式如下: SELECT名称FROM1,2WHERE件使用全连接查询的例子如下:SELECT , s.scoreFROM student s, product pWHERE = ;上面的例子是将学生信息表和考试成绩表进行关联查询,获取学生姓名和考试成绩的结果。

2、部分连接部分连接也是一种多表连接查询,但与全连接不同,部分连接不是将所有数据进行组合,只显示部分数据。

使用部分连接的语法格式如下:SELECT名称FROM1 LEFT JOIN2ON件部分连接的例子如下:SELECT , p.priceFROM student sLEFT JOIN product pON = ;上面的例子是将学生表和产品表进行部分连接,查询学生的姓名和产品的价格。

3、内连接内连接是一种特殊的多表关联查询,它返回的数据是两张表的交集,也就是所谓的“内连接”。

使用内连接时,需要在查询语句中指定查找内容,这样就可以确保查询返回的数据是可靠的。

内连接查询的语法格式如下:SELECT名称FROM1 INNER JOIN2ON件使用内连接查询的例子如下:SELECT , p.priceFROM student sINNER JOIN product pON = ;上面的例子是将学生表和产品表进行内连接,查询学生的姓名和产品的价格。

以上就是sql多表关联查询的语句,其中包括全部连接、部分连接和内连接。

sql多表关联查询是数据库管理系统中最重要的操作,允许用户在多个表中进行查询,这能够极大地提高用户的工作效率。

要使用多表关联查询,用户必须掌握其语句的语法,熟悉的使用其他的查询语句,才能获得最终想要的结果。

三表检查sql

三表检查sql

三表检查sql
三表联查是一个常见的SQL查询操作,用于从三个或更多的表中获取相关的数据。

下面是一个示例,展示如何进行三表联查:
假设我们有三个表:`orders`、`customers`和`products`。

1. `orders` 表包含订单信息,包括订单ID、客户ID和产品ID。

2. `customers` 表包含客户信息,包括客户ID、客户姓名和地址。

3. `products` 表包含产品信息,包括产品ID、产品名称和价格。

现在,我们想要查询每个订单的客户姓名和产品名称。

可以使用以下SQL 语句进行三表联查:
```sql
SELECT _id, _name, _name
FROM orders o
JOIN customers c ON _id = _id
JOIN products p ON _id = _id;
```
在这个查询中,我们使用`JOIN`关键字将三个表连接起来。

通过将`orders`表与`customers`表连接,我们可以获取每个订单的客户信息。

然后,将结果与`products`表连接,以获取每个订单的产品信息。

请注意,这只是一个示例查询,实际的三表联查查询可能会因数据库结构和数据需求而有所不同。

根据具体情况,您可能需要根据表之间的关系和条件来调整查询语句。

sql(三):多表查询、左右连接、组函数与分组统计

sql(三):多表查询、左右连接、组函数与分组统计

sql(三):多表查询、左右连接、组函数与分组统计⼀、多表查询之前查询都是在⼀张表上进⾏的查询,如果使⽤多张表进⾏查询,则称为多表查询。

格式如下:[sql]1. select {DISTINCT}* | 具体列名别名2. form 表名称1 别名1,表名称2 别名23. { where 条件(s) }4. {order by 排序的字段1 ASC | DESC,排序的字段2 ASC | DESC.....}1. 使⽤多表查询,同时查询emp和dept表[sql]1. SELECT * FROM emp,dept ;查询出来的结果条数是emp条数 * dept的条数。

说明在使⽤多表查询的时候会产⽣笛卡尔积。

如果表的数据越多,笛卡尔积产⽣的结果就越多,想要去掉笛卡尔积,则必须使⽤字段进⾏关联的操作。

例如,使⽤dept字段来关联:[sql]1. SELECT * FROM emp,dept2. WHERE emp.deptno=dept.deptno ;2. 如果表名过长,可以为其取别名[sql]1. SELECT * FROM emp e,dept d2. WHERE e.deptno=d.deptno ;3.⾃关联例:要求查询出每个雇员的姓名、⼯作、雇员的直接上级领导的姓名[sql]1. SELECT e.ename,e.job,m.ename2. FROM emp e,emp m3. WHERE e.mgr=m.empno ;⼆、左右连接1. (+)在左边表⽰右连接例如:[sql]1. SELECT e.empno,e.ename,d.deptno,d.dname,d.loc2. FROM emp e,dept d3. WHERE e.deptno(+)=d.deptno ;表⽰d表的deptno字段⼀定会出现,即使e表的deptno没有存在相匹配的⾏...2. (+)在右边表⽰左连接例如:[sql]1. SELECT e.empno,e.ename,d.deptno,d.dname,d.loc2. FROM emp e,dept d3. WHERE e.deptno=d.deptno(+) ;表⽰e表的deptno字段⼀定会出现,即使d表的deptno没有存在相匹配的⾏...三、SQL:1999语法(了解)格式:[sql]1. SELECT table1.column,table2.column2. FROM table1 [CROSS JOIN table2]|3. [NATURAL JOIN table2]|4. [JOIN table2 USING(column_name)]|5. [JOIN table2 ON(table1.column_name=table2.column_name)]|6. [LEFT|RIGHT|FULL OUTER JOIN table2 ON(table1.column_name=table2.column_name)];四、组函数与分组统计分组:例如,把所有男⽣分为⼀组,⼥⽣分为⼀组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这里我们建几个SQL表,我们用个图来说明关系这里tid的值和教师表中的id相匹配,pid和院系表中的id相匹配,也就是说这样建表就把三张表的关系给建立起来了。

学生表在最低层,院系表在最高层。

而这里我们就要讲一个外键的概念:外键是作为与主表的主键相关联的键值,外键可以有多个,同时有外键的表称作对应主键所在表的从表,那主键所在的表就作主表。

图中,tid 是教师表中id的外键,也就学生表是教师表的从表,同理,教师表也就是院系表的从表。

外键的主要作用是保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。

当然在这时我们还不需要去建立真正的外键联系关系现在我们要查询学生表,教师表,院系表的所有信息:select * from student,teacher,part //查询这三个表中的所有信息我们现在要查询某学生的教师是的名字:select teaname from student,teacher where (student.id ='') and (teacher.id = student.tid)//这里有两个约束条件,一个是约束学生的id号,一个是约束学生表和教师表的数据要相对应,也就是,这样查询的结果,就是该学生tid所对应教师表中id号的teaname字段的数据,也就是这位学生的教师名字了现在有一个问题,我想问这个学生所在院系是什么?这个问题就应该迎刃而解了吧。

当然这只是简单的多表查询,其实在真正多表查询时,是用的以下方法:这里讲一个join方法该语句是实现多对对查询或一对一查询的方法,当我们在用简单多表查询的时候,它的匹配是无逻辑的,也就是没有具体的约束条件,它不会按照逻辑关系来约束。

有可能这个学生会和一个无关第教师联系起来,或者和一个无关的院系联系起来。

我们用一个简单的join方法查询:select teacher.teaname from student join teacher on(student.tid = teacher.id)where (student.id='1') //查询id号为1的学生的教师的名字这就是join语句的语法,它是个嵌套语句,也就是把一个表嵌套在另一个表中,一般都是自下而上的嵌套,如上例,就是学生表去加入教师表的集合。

也就是从表加入主表。

这种join有两个参数,我们上例用的是缺省参数--innor,当我们直接用join时,就默认是这个参数,还有一个left,这两个参数在用时有很大的区别。

select * from student left join teacher on(student.tid = teacher.id)这上面这个例子中,用left和不用left参数是有很大区别的。

用如果在学生表中,有几个新报道的学生还未分配教师,那么,用left参数查询的时候也会显示出来,尽管他的tid为空,和教师表中的数据不匹配,但也会显示出来。

若不用left ,那么就不会显示这几个新学生。

通过这个例子应该能更好的理解left的用处了吧,在处理中,我们要根据需求来进行设计查询语句。

当然,我们先前讲的外键这个时候我们也需要拿出来用了。

下图所示:我们现在建好了这个表,我们有如下设计需求,当我在删掉这个类别的时候,我们需要把该类别下的产品也删掉。

我们可以用最原始的方法,也就是先查询所有该类别的产品,然后把类别下的产品全删完后才删除该类别,但这样,不显得很麻烦吗?这里就该用上外键的功能了,首先我们建立好外键,也就是把cid设为类别表中id的外键 ALTER TABLE product ADD CONSTRAINT fk_product_cidFOREIGN KEY (cid)REFERENCES category(id);//第一行是在product(产品表)中添加一个外键,第二行是此外键对应的字段是cid,第三行是此外键对应的键值为category(类别表)中的id.那么这就建立好了外键的关系,但是这样还是不行,我们还需要了解一下外键的级联操作的相关信息:CASCADE(连锁关系,当主表变更,从表的相应信息也会变更)RESTRICT(禁止主表变更)SET NULL(子表相应字段设置为空)。

一般我们用的最多的是连锁关系,而上例所讲的设计我们就需要用到连锁关系:ALTER TABLE product ADD CONSTRAINT fk_product_cidFOREIGN KEY (cid)REFERENCES category(id);ON UPDATE CASCADE;ON DELETE CASCADE;//这就实现了更新的连锁和删除的连锁。

也就是当主表的信息变更,从表的相关信息也会变更。

当主表的信息删除,从表的相关联信息也会删除--------------------------------------------------------------------------------------------------------------------------------------------问题及描述:--1.学生表Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex学生性别--2.课程表Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号--3.教师表Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名--4.成绩表SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数*/--创建测试数据create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar( 10))insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男')insert into Student values('02' , N'钱电' , '1990-12-21' , N'男')insert into Student values('03' , N'孙风' , '1990-05-20' , N'男')insert into Student values('04' , N'李云' , '1990-08-06' , N'男')insert into Student values('05' , N'周梅' , '1991-12-01' , N'女')insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女')insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女')insert into Student values('08' , N'王菊' , '1990-01-20' , N'女')create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10))insert into Course values('01' , N'语文' , '02')insert into Course values('02' , N'数学' , '01')insert into Course values('03' , N'英语' , '03')create table Teacher(T# varchar(10),Tname nvarchar(10))insert into Teacher values('01' , N'张三')insert into Teacher values('02' , N'李四')insert into Teacher values('03' , N'王五')create table SC(S# varchar(10),C# varchar(10),score decimal(18,1))insert into SC values('01' , '01' , 80)insert into SC values('01' , '02' , 90)insert into SC values('01' , '03' , 99)insert into SC values('02' , '01' , 70)insert into SC values('02' , '02' , 60)insert into SC values('02' , '03' , 80)insert into SC values('03' , '01' , 80)insert into SC values('03' , '02' , 80)insert into SC values('03' , '03' , 80)insert into SC values('04' , '01' , 50)insert into SC values('04' , '02' , 30)insert into SC values('04' , '03' , 20)insert into SC values('05' , '01' , 76)insert into SC values('05' , '02' , 87)insert into SC values('06' , '01' , 31)insert into SC values('06' , '03' , 34)insert into SC values('07' , '02' , 89)insert into SC values('07' , '03' , 98)go--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数--1.1、查询同时存在"01"课程和"02"课程的情况select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数]from Student a , SC b , SC c where a.S# = b.S# and a.S# = c.S# and b.C# ='01'and c.C# ='02'and b.score > c.score --1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的情况(不存在时显示为null)(以下存在相同内容时不再解释)select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数]from Student aleft join SC b on a.S# = b.S# and b.C# ='01'left join SC c on a.S# = c.S# and c.C# ='02'where b.score >isnull(c.score,0)--2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数--2.1、查询同时存在"01"课程和"02"课程的情况select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数]from Student a , SC b , SC c where a.S# = b.S# and a.S# = c.S# and b.C# ='01'and c.C# ='02'and b.score < c.score --2.2、查询同时存在"01"课程和"02"课程的情况和不存在"01"课程但存在"02"课程的情况select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数]from Student aleft join SC b on a.S# = b.S# and b.C# ='01'left join SC c on a.S# = c.S# and c.C# ='02'where isnull(b.score,0) < c.score--3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩select a.S# , a.Sname , cast(avg(b.score) as decimal(18,2)) avg_scorefrom Student a , sc bwhere a.S# = b.S#group by a.S# , a.Snamehaving cast(avg(b.score) as decimal(18,2)) >=60order by a.S#--4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩--4.1、查询在sc表存在成绩的学生信息的SQL语句。

相关文档
最新文档