mysql数据库查询合并_MYSQL子查询以及合并查询的用法

MYSQL子查询以及合并查询的用法

发布时间:2020-05-28 16:14:40

来源:亿速云

阅读:175

作者:鸽子

子查询

带IN关键字的子查询只有子查询返回的结果列包含一个值时,比较运算符才适用。假如一个子查询返回的结果集是值的列表,这时比较运算符就必须用IN运算符代替。

IN运算符可以检测结果集中是否存在某个特定的值,如果检测成功就执行外部的查询。

例子1:查看在infos表中score字段内容符合条件对应的info表信息

SELECT * from info where score in (SELECT score FROM infos );

a2ba15ffaf8fa534fd5a256d46bfed58.png

f9ca261fd8c75976f5bc299cd2208040.png

查询结果:

017361167cdc4ffb8a5a30e5e27556ce.png

例子2:查看在infos表和info表同名人信息

SELECT * from info where name in (SELECT name FROM infos );

查询结果:

aa9d942ab59143da596ebb86c551502a.png

带比较运算符的子查询子查询可以使用比较运算符。这些比较运算符包括=、!=、>、>=、

例子:SELECT * from info where age >= (SELECT age FROM infos where id =4);

894ba6778247d6c798015eaa5bfa9b90.png

查询结果:

410845bd3a7ab76f5dbcae046c477fa6.png

带EXISTS关键字的子查询使用EXISTS关键字时,内层查询语句不返回查询的记录。而是返回一个真假值。如果内层查询语句查询到满足条件的记录,就返回一个真值(true),否则,将返回一个假值(false)。当返回的值为true时,外层查询语句将进行查询;当返回的为false时,外层查询语句不进行查询或者查询不出任何记录。

例子1:SELECT * from info where exists (SELECT * from infos where id =2);

查询结果:

4a4c701ed2cdf0371de620eaf9ad09f6.png

例子2:SELECT * from info where exists (SELECT * from infos where id =27);

查询结果:

77cee7855182a8fe28489102311f30bf.png

带ANY关键字的子查询ANY关键字表示满足其中任意一个条件。使用ANY关键字时,只要满足内层查询语句返回的结果中的任意一个,就可以通过该条件来执行外层查询语句。

例子:SELECT *  from info where age > ANY(SELECT age from infos);

e2e4e50a168875bb4a3e00da4cd39f83.png

查询结果:

4014b3e7a300ea3a65f0327182eb15d0.png

带ALL关键字的子查询ALL关键字表示满足所有条件。使用ALL关键字时,只有满足内层查询语句返回的所有结果,才可以执行外层查询语句。

例子:SELECT *  from info where age < all(SELECT age from infos);

查询结果:

546fdb42033d0c4bc85c8552539eaf37.png

合并查询合并查询结果是将多个SELECT语句的查询结果合并到一起。合并查询结果使用UNION和UNION ALL关键字。

例子1:SELECT score  from info UNION SELECT score from infos;

查询结果:

79d4f096d57c502b02d8301292cf1ef2.png

例子2:SELECT score  from info UNION SELECT name from infos;

查询结果:

44b434724ed9cfc5f00a39cacefe8ffb.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值