子查询和嵌套查询


 

子查询

(我本人不太喜欢子查询,觉得联表查询更舒服一些)

本质:在where 语句中嵌套一个子查询语句

例如:

 


-- 查询课程为 高等数学-4 且分数不小于10分的同学的学号和姓名
-- 联表查询
SELECT `subjectname`,s.`StudentNo`,`StudentName`
FROM `student` AS s
INNER JOIN `subject` AS sub
ON s.`gradeid`=sub.`gradeid`
INNER JOIN `result` AS r
ON s.`studentno`=r.`studentno`
WHERE `subjectname`='高等数学-4' AND `studentresult`>=10

-- 子查询

-- 分成两部分
-- 先查询分数不小于10分的学生的姓名和学号
SELECT s.`StudentNo`,`StudentName`
FROM student AS s
INNER JOIN result AS r
ON r.`StudentNo`=s.`StudentNo`
WHERE `studentresult`>=10

-- 在这个基础上增加一个科目,高等数学-4
-- 查询 高等数学-4 的编号
SELECT s.`StudentNo`,`StudentName`
FROM student AS s
INNER JOIN result AS r
ON r.`StudentNo`=s.`StudentNo`
WHERE `studentresult`>=10 AND `subjectno`=(
SELECT `subjectno` FROM `subject`
WHERE `subjectname` ='高等数学-4'
)

 

嵌套查询

本质上就是比子查询更复杂些,由于我不喜欢用子查询,这里就不详细说了,想要了解的可以点开下面的链接自己学习!

子查询和嵌套查询


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM