MYSQL数据库基础--MySQL子查询怎么操作?_mysql 先查询数据,然后根据列表数据查询子查询

总结

面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。

我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

面试题及解析总结

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

大厂面试场景

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

知识点总结

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

子查询作为枚举查询条件使用是将一个查询结果(单列多行)的结果集作为枚举查询条件进行二次查询。

语法 :SELECT 列名 FROM 表名 Where 列名 in(子查询结果);

举个栗子:查询和健哥,旭哥同龄的学生信息。

#思路:
#1. 先查询健哥和旭哥的年龄(多行单列)
select Sage from student where Sname in('健哥', '旭哥'); #年龄是12和23

#2. 再查询年龄为12和23的学员信息
select * from student where Sage in(12, 23); 

#3.SQL:合并
select * from student where Sage in(select Sage from student where Sname in('健哥', '旭哥')); 

将子查询 ”多行一列“的结果作为外部查询的枚举查询条件,做第二次查询。

3.子查询(作为一张表)

此处健哥敲黑板啦!非常重要,使用频率很高!

下面的子查询是将一个查询的结果当做一张虚拟表,然后在这个表的结果基础上再进行查询。

语法 :SELECT 列名 FROM (子查询的结果集) WHERE 条件;

举个栗子:查询最老的5名学生信息。

#思路:
#1. 先对学生年龄排序查询(排序后的临时表)
select * from student order by Sage desc;

#2. 再查询临时表中前5行学生信息
select *
from (临时表) 
limit 0,5;

#SQL:合并
select * from (
		select * from student order by Sage desc
) as temp limit 0,4;

将子查询 ”多行多列“的结果作为外部查询的一张表,做第二次查询。

注意: 子查询作为临时表,为其赋予一个临时表名。


二. 结语

最后在这里对本文核心要点进行总结:

  1. 子查询有三种使用场景分别是:子查询结果作为判断条件、子查询结果作为枚举条件、子查询结果作为一个虚拟表进行二次查询。
  2. 以上三种使用方式各位小伙伴要熟练掌握哦。

写在最后

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值