300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Mysql---子查询的三种查询方式( 表子查询 条件子查询 列中子查询)

Mysql---子查询的三种查询方式( 表子查询 条件子查询 列中子查询)

时间:2020-04-27 23:49:21

相关推荐

Mysql---子查询的三种查询方式( 表子查询 条件子查询 列中子查询)

mysql子查询

子查询分为:

列中子查询 单列单行表子查询 必须有别名条件子查询 单行单列 多行单列

下列示例表结构:

grade表:

result表:

student表:

subject表:

列中子查询 单列单行

列中子查询即

外层查询的结果为其他表的一列数据

示例:

例如查出结果后想要将课程编号换成课程名,就可以使用列中子查询

select a.StudentNo,a.SubjectNo,a.StudentResult,(select b.SubjectName from `subject` b where b.SubjectNo=a.SubjectNo) as 课程名称from result a;

表子查询 必须有别名

将一张表的查询结果当成一张现有的表,再次与另外一张表进行连接查询

示例:

select tab.*,d.GradeName from (select SubjectName,a.StudentNo,c.GradeId,StudentName,StudentResult from result a LEFT JOIN `subject` b on a.SubjectNo = b.SubjectNo LEFT JOIN student c on a.StudentNo = c.StudentNo) tab LEFT JOIN grade d on tab.GradeId = d.GradeID;

条件子查询 单行单列 多行单列

条件子查询用的较多,即将一次查询的查询结果当做另一张表的查询条件,一般这个查询条件要和查询结果字段对应

一般用 = 或者 in来连接

示例:

#查询课程为《高等数学-2 高等数学-1》且分数不小于80分的学生的学号和姓名select * from result a where a.StudentResult>80and a.SubjectNo in (select SubjectNo from `subject` b where b.SubjectName = "高等数学-2" or b.SubjectName = "高等数学-1");

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。