sql-子查询

在多个表中查询信息,除了用多表连接外,还可以使用子查询语句,但是子查询语句所查询的内容只能来源于一张表,但是可以使用其他表的信息作为筛选条件。

子查询的格式为

select 字段名

from 表1

where 字段1 运算符(

      select  字段1

      from  表2

      where 字段2   运算符(

             select  字段2

              from 表2

              where    条件

        )

举例如下 :

查询选了‘C++程学设计’且成绩大于60分的学生信息。

这个查询涉及到三张表,需要从学生表中读取学生信息,从课程表中找到课程号,然后在分数表中查询成绩信息。

三张表信息如下图:

s

student表

score表

course表

代码如下:

select sname,dept,sex
from Student
where SID in
	(
		select SID
		from Score
		where Mark>60 and CourseID in
		(
			select CourseID
			from course
			where Coursename='C++程学设计'
			)
	)

 

select sname,dept,sex
from Student

表示需要查询的字段为学生姓名,学院还有性别,数据来源于student表,后面的where语句中嵌套了两个子查询,我们从最里面的来说。

select CourseID
            from course
            where Coursename='C++程学设计'

表示从course表中查询字段courseid且要求coursename为c++程序设计,查询到的结果不会显示出来,而是传递给外层语句,并作为外层语句的查询条件来使用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值