mysql子查询
2015-11-04 09:11
316 查看
子查询:语句内部的查询语句就是子查询语句,其父语句不一定是查询语句,子语句一定要用()包起来
按返回值分类分为:一个值、一列、一行、多行多列
一个值:子语句获得一个值后,使用关系运算符> = <,进行运算。
例:获取代课天数相同的老师信息 select t_name,gender from teacher_class where days=(select max(days) from teacher_class)。
一列: 子语句获得一列值后,使用 in not in any等来进行运算。
例:查询所有带过0228班的所有老师信息:select t_name,c_name from teacher_class where t_name in(select t_name from teacher_class where c_name=’php0228’)
一行:子语句获取一行数据后。进行运算。
例:Select * from teacher where (gender,c_name)=(select distinct gender,c_name from teacher_class where t_name=’李白’ and c_name=’php0115’).
多行多列相当于一个表:一般是放到from后面。因为from后面加的是一个表,我们查询出来的是一个结果所以要给结果加一个表明 as 表名。
例:select * from (select* from teacher) as temp
按位置分:from型和where型。放到from后的就叫from型。放where后就是where型案例如上。
按返回值分类分为:一个值、一列、一行、多行多列
一个值:子语句获得一个值后,使用关系运算符> = <,进行运算。
例:获取代课天数相同的老师信息 select t_name,gender from teacher_class where days=(select max(days) from teacher_class)。
一列: 子语句获得一列值后,使用 in not in any等来进行运算。
例:查询所有带过0228班的所有老师信息:select t_name,c_name from teacher_class where t_name in(select t_name from teacher_class where c_name=’php0228’)
一行:子语句获取一行数据后。进行运算。
例:Select * from teacher where (gender,c_name)=(select distinct gender,c_name from teacher_class where t_name=’李白’ and c_name=’php0115’).
多行多列相当于一个表:一般是放到from后面。因为from后面加的是一个表,我们查询出来的是一个结果所以要给结果加一个表明 as 表名。
例:select * from (select* from teacher) as temp
按位置分:from型和where型。放到from后的就叫from型。放where后就是where型案例如上。
相关文章推荐
- 为MySQL选择合适的备份方式
- Mysql多源复制
- mysql date&datetime类型更新问题
- 使用mysql yum包安装mysql5.5
- win7 32bit下安装mysql server
- Mysql 无法登陆 Error 1045
- ubuntu上安装配置mysql
- 通过两种方式增加从库――不停止mysql服务
- MySQL_CRUD基础语句
- MySQL 事务的基本概念
- Mysql子查询概念
- mysql连接和联和
- mysql 事务隔离
- Mysql命令大全(详细篇)
- Mysql JDBC Url参数说明
- [实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹
- 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)
- Mysql调优
- MySQL Fabric 实践
- 后端分布式系列:分布式存储-MySQL 数据库事务与复制