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

子查询

带IN关键字的子查询

只有子查询返回的结果列包含一个值时,比较运算符才适用。假如一个子查询返回的结果集是值的列表,这时比较运算符就必须用IN运算符代替。
IN运算符可以检测结果集中是否存在某个特定的值,如果检测成功就执行外部的查询。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网站空间、营销软件、网站建设、天镇网站维护、网站推广。

例子1:

查看在infos表中score字段内容符合条件对应的info表信息
SELECT * from info where score in (SELECT score FROM infos );

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

查询结果:
MYSQL子查询以及合并查询的用法

例子2:

查看在infos表和info表同名人信息
SELECT * from info where name in (SELECT name FROM infos );

查询结果:
MYSQL子查询以及合并查询的用法

带比较运算符的子查询

子查询可以使用比较运算符。这些比较运算符包括=、!=、>、>=、<、<=等。比较运算符在子查询时使用的非常广泛。

例子:

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

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

查询结果:
MYSQL子查询以及合并查询的用法

带EXISTS关键字的子查询

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

例子1:

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

查询结果:

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

例子2:

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

查询结果:
MYSQL子查询以及合并查询的用法

带ANY关键字的子查询

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

例子:

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

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

查询结果:

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

带ALL关键字的子查询

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

例子:

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

查询结果:
MYSQL子查询以及合并查询的用法

合并查询

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

例子1:

SELECT score  from info UNION SELECT score from infos;

查询结果:

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

例子2:

SELECT score  from info UNION SELECT name from infos;

查询结果:

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


网站名称:MYSQL子查询以及合并查询的用法
网站网址:http://myzitong.com/article/gcdjej.html