MySQL查询数据之合并查询结果

文 / @WordPress主题

MySQL是一种流行的关系型数据库,它可以通过查询语句从数据库中获取所需的数据。在某些情况下,我们需要合并多个查询结果,这时就需要使用合并查询结果的技术。本文将介绍如何使用MySQL的union关键字实现合并查询结果。

使用union关键字,可以将多个select语句的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同。各个select语句之间使用union或union all关键字分隔。其中,union不使用关键字all,执行的时候会删除重复的记录,所有返回的行都是唯一的;使用关键字all的作用是不删除重复行也不对结果进行自动排序。

下面举个例子,查询所有价格小于9的水果的信息,查询s_id等于101和103的所有水果的信息,使用union连接查询结果,SQL语句如下:

```
select s_id, f_name, f_price
from fruits
where f_price < 9.0
union all
select s_id, f_name, f_price
from fruits
where s_id in (101, 103);
```

执行以上语句后,会返回一个由两个查询结果组合而成的结果集。其中,第一个select语句查询价格小于9的水果,第二个select语句查询供应商101和103提供的水果。使用union all包含重复的行,所以得到的结果不会对重复行进行删除。

我们也可以分开查看每个select语句的结果:

```
select s_id, f_name, f_price
from fruits
where f_price < 9.0;

select s_id, f_name, f_price
from fruits
where s_id in (101, 103);
```

查询结果中,第一个select语句返回了10条记录,第二个select语句返回了5条记录。使用union将两条select语句分隔开,执行完毕之后把输出结果组合成单个的结果集,并删除重复的记录。使用union all则直接将两个结果集合并在一起。

需要注意的是,使用union all的功能是不删除重复行,all关键字语句执行时所需要的资源少,所以尽可能的使用它。确定查询结果中不会有重复数据或者不需要去掉重复数据的时候,应当尽量使用uninon all以提高查询效率。

总之,使用union关键字可以将多个查询结果进行合并,方便我们在数据库中获取所需的数据。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。