1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql子查询查询子字段_MySQL知识整理7.4—子查询

mysql子查询查询子字段_MySQL知识整理7.4—子查询

时间:2019-01-31 05:44:37

相关推荐

mysql子查询查询子字段_MySQL知识整理7.4—子查询

数据科学探路者:MySQL知识整理7.3—连接查询​

四、子查询

什么是子查询?

当一个查询是另一个查询的条件时,称之为子查询。子查询可以使用几个简单命令构造功能强大的复合命令。子查询最常用于SELECT-SQL命令的WHERE子句中。子查询是一个 SELECT 语句,它嵌套在一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。

语法:select ....from 表1 where 列1 > (子查询)

外面的查询成为父查询,圆括号嵌入的查询成为称为子查询。SQL Server 执行时,先执行子查询部分,求出子查询部分的值,再执行整个父查询,返回最后的结果。

查看多表的数据也可使用表连接,表连接(join on...),表连接都可用子查询替换,但有的子查询不能用表连接替换,子查询比较灵活,方便,形式多样,适合于作为查询的筛选条件。

1.any,some和all关键字的子查询

在使用子查询语句的过程中经常使用ANYSOMEALL(另外还有一个IN)关键字作为筛选条件,any和some关键字是同义词。

/*any、some和all关键字*/use test_db;create table tb1(num1 int not null);create table tb2(num2 int not null);insert into tb1 values(1),(3),(5),(7);insert into tb2 values(2),(4),(6),(8);select num1 from tb1 where num1 > any(select num2 from tb2);select num1 from tb1 where num1 > all(select num2 from tb2);

2.EXISTS关键字子查询

子查询EXISTS是用来指定一个子查询,检测行的存在使用子查询EXISTS 关键字引入一个子查询时,就相当于进行一次存在测试。外部查询的WHERE 子句测试子查询返回的行是否存在。子查询实际上不产生任何数据;它只返回 TRUE 或 FALSE 值。要注意:在子查询中使用仍然返回结果集,通过使用EXISTS仍取值为 TRUE

通过对子查询EXISTS的解释,大家可以发现子查询IN与子查询EXISTS的区别了吗?注意,EXISTS子查询实际上不产生任何数据;它只返回 TRUE 或 FALSE 值。

这样就不存在我们之前说“子查询IN适合外结果集大,子查询结果集小的情况。

select * from fruits where exists(select sname from suppliers where sid=102);

http://3.IN关键字子查询

使用IN关键字,进行子查询时,内层查询语句返回一个数据列,这个数据列中的值,将供外层查询语句进行比较操作

select cid from orders where onum in(select onum from orderitems where fid='c0');

4.带比较运算符的子查询

子查询还可以使用其他的比较运算符,如:< , <= , > , >= , = , !=等

select sid,sname from fruits where sid = (select s1.sid from suppliers as s1 where s1.scity='上海');

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