子查询,简称套娃查询

简介: 子查询,简称套娃查询
/*============== 子查询 ================ 
什么是子查询?    
在查询语句中的WHERE条件子句中,又嵌套了另一个查询语句   
 嵌套查询可由多个子查询组成,求解的方式是由里及外;    
 子查询返回的结果一般都是集合,故而建议使用IN关键字; */
-- 查询 数据库结构-1 的所有考试结果(学号,科目编号,成绩),并且成绩降序排列
-- 方法一:使用连接查询 
SELECT studentno,r.subjectno,StudentResult
FROM result r 
INNER JOIN `subject` sub
ON r.`SubjectNo`=sub.`SubjectNo` 
WHERE subjectname = '数据库结构-1' 
ORDER BY studentresult DESC;
-- 方法二:使用子查询(执行顺序:由里及外) 
SELECT studentno,subjectno,StudentResult 
FROM result WHERE 
subjectno=(    
  SELECT subjectno FROM `subject`    
  WHERE subjectname = '数据库结构-1' ) 
ORDER BY studentresult DESC;
-- 查询课程为 高等数学-2 且分数不小于80分的学生的学号和姓名 
-- 方法一:使用连接查询 
SELECT s.studentno,studentname 
FROM student s 
INNER JOIN result r 
ON s.`StudentNo` = r.`StudentNo` 
INNER JOIN `subject` sub 
ON sub.`SubjectNo` = r.`SubjectNo` 
WHERE subjectname = '高等数学-2' AND StudentResult>=80
-- 方法二:使用连接查询+子查询 
-- 分数不小于80分的学生的学号和姓名 
SELECT r.studentno,studentname 
FROM student s 
INNER JOIN result r 
ON s.`StudentNo`=r.`StudentNo`
WHERE StudentResult>=80
-- 在上面SQL基础上,添加需求:课程为 高等数学-2 
SELECT r.studentno,studentname FROM student s 
INNER JOIN result r ON s.`StudentNo`=r.`StudentNo` WHERE StudentResult>=80 AND subjectno=(   
   SELECT subjectno FROM `subject`    
   WHERE subjectname = '高等数学-2'
)
-- 方法三:使用子查询 
-- 分步写简单sql语句,然后将其嵌套起来 
SELECT studentno,studentname FROM student WHERE studentno IN(    
  SELECT studentno FROM result WHERE StudentResult>=80 AND subjectno=(        
  SELECT subjectno FROM `subject` WHERE subjectname = '高等数学-2'    ) )
相关文章
queryDsl多表联合查询,任意查询联合字段
这是我的通用方法 package com.spark.bitrade.service.Base; import com.querydsl.core.Tuple; import com.
4273 0
|
4月前
|
SQL 存储 数据挖掘
"SQL JOIN大揭秘:解锁多表联合查询的终极奥义,从内到外,左至右,全连接让你数据世界畅通无阻!"
【8月更文挑战第31天】在数据库领域,数据常分散在多个表中,而SQL JOIN操作如同桥梁,连接这些孤岛,使数据自由流动,编织成复杂的信息网络。本文通过对比内连接、左连接、右连接和全连接的不同类型,并结合示例代码,展示SQL JOIN的强大功能。掌握JOIN技术不仅能高效查询数据,更是数据分析和数据库管理的关键技能。
123 0
mongoose + express写自查寻接口时,以递归格式多级查询或aggregate查询
mongoose + express写自查寻接口时,以递归格式多级查询或aggregate查询
|
数据库
子查询与内连接查询区别(效率上,连接查询高于子查询)、左连接以及连接的原理,还有内连接与左连接的区别
子查询与内连接查询区别(效率上,连接查询高于子查询)、左连接以及连接的原理,还有内连接与左连接的区别
1138 0
子查询与内连接查询区别(效率上,连接查询高于子查询)、左连接以及连接的原理,还有内连接与左连接的区别
|
SQL 存储 关系型数据库
Mysql数据库基础第八章:窗口函数和公用表表达式(CTE)
# 1.窗口函数 MySQL从8.0版本开始支持窗口函数。窗口函数的作用类似于在查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是将结果置于每一条数据记录中。
Mysql数据库基础第八章:窗口函数和公用表表达式(CTE)
|
SQL 关系型数据库 MySQL
嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏
嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏
269 0
嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏
|
SQL 算法
多层嵌套子查询的unnesting算法解析
嵌套子查询的背景实践中,经常会遇到多层嵌套的SQL,并且多层嵌套之间包含有聚集函数,执行这类SQL的最简单的方法就是一层一层嵌套执行,类似于Nested Loop Join,对于外查询的每一行数据,就要将子查询执行一遍,如果子查询还有孙查询,子查询中的每一行,还要将孙查询执行一遍,……,显尔易见,这种执行方式的效率通常都比较低,尤其是当表的数据量很大时,对性能的影响非常明显。 下面是一个嵌套查询的
|
SQL 关系型数据库 MySQL
MySQL基础-标量子查询
SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。
352 0
|
SQL 安全 数据库
【T-SQL基础】02.联接查询
【T-SQL基础】02.联接查询
174 0
【T-SQL基础】02.联接查询
|
测试技术 Shell
[20180625]函数与标量子查询13(补充)
[20180625]函数与标量子查询13(补充).txt --//最近一段时间一直在测试标量子查询视buckets的数量,我前面的测试方法纯粹蛮力测试. --//参考链接:http://blog.
1335 0