mysql合并查询的区别_MYSQL查询--子查询,合并查询

子查询

带IN关键字的子查询

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

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

例子1:

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

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

7200c7fb91a4b0ac04a9fb6aae5e5293.png

3a23f2fa9446da88353708c46d3047d5.png

查询结果:

4982eb31ab05c7de209b92326d7c382b.png

例子2:

查看在infos表和info表同名人信息

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

查询结果:

6d6d0d69336a1cba5141dc0c5960c972.png

带比较运算符的子查询

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

例子:

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

fb27dc64b64a3a7b6815feb9ee4ad868.png

查询结果:

4cd567f64a539c6c515fc880da1ef41d.png

带EXISTS关键字的子查询

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

例子1:

SELECT * from info where exists (SELECT * from infos where id =2);

查询结果:

be6bab334fbbe798ce23aeaab523058c.png

例子2:

SELECT * from info where exists (SELECT * from infos where id =27);

查询结果:

ce1d3fa196335c54a892f968e4fddf6b.png

带ANY关键字的子查询

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

例子:

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

e40385a2f1c0217456e79310806e6197.png

查询结果:

db96c5c94d7bb3aa324735223e8b2fc8.png

带ALL关键字的子查询

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

例子:

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

查询结果:

3089207027d0045d8d0ad176a12243a1.png

合并查询

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

例子1:

SELECT score from info UNION SELECT score from infos;

查询结果:

7610b31e5b24b6a2524a71702ed33768.png

例子2:

SELECT score from info UNION SELECT name from infos;

查询结果:

7d3da8f88191d38c89718538e1fd88a7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值