Mysql

您所在的位置:网站首页 MySQL三表查询 Mysql

Mysql

2023-09-10 14:43| 来源: 网络整理| 查看: 265

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>80 and a.SubjectNo in ( select SubjectNo from `subject` b where b.SubjectName = "高等数学-2" or b.SubjectName = "高等数学-1" );

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3