mysql查询结果怎么合并

文 / @WordPress主题

在MySQL中,有时候需要查询的结果来自多个表,但是这些表之间并没有直接的连接关系。这时就需要使用UNION操作符来合并查询结果。

UNION操作符可以将两个或多个SELECT语句的结果组合到一个结果集合中,并删除重复的数据。其语法如下:

SELECT 查询语句1
UNION
SELECT 查询语句2
UNION
……

需要注意的是,多个SELECT语句需要满足以下条件:

1. 查询列数一致;
2. 查询的每一列的类型和顺序一致。

下面我们通过一些实例来进一步了解UNION操作符的用法。

实例1:查询部门编号>90或邮箱包含"a"的员工信息

SELECT * FROM employees WHERE department_id > 90 OR email LIKE '%a%';

使用UNION联合查询:

SELECT * FROM employees WHERE department_id > 90
UNION
SELECT * FROM employees WHERE email LIKE '%a%';

实例2:查询中国用户中女性的信息以及外国用户中女性的用户信息

SELECT c.`c_id`, c.`c_name`, c.`c_sex` FROM china c WHERE c_sex='女'
UNION
SELECT f.`f_id`, f.`f_name`, f.`f_sex` FROM foreignUser f WHERE f_sex='female';

需要注意的是,在这个例子中,china表和foreignUser表中都有名字为韩梅梅的用户,但是由于UNION操作符默认会去重,所以只会出现一次。

如果我们想要包含重复项,可以使用UNION ALL,代码如下:

SELECT c.`c_id`, c.`c_name` FROM china c WHERE c_sex='女'
UNION ALL
SELECT f.`f_id`, f.`f_name` FROM foreignUser f WHERE f_sex='female';

在以上例子中,如果china表和foreignUser表中都有名字为韩梅梅的用户,那么结果集合中会出现两条记录。

总结:

通过上面的例子,我们可以发现,在MySQL中使用UNION操作符可以很便捷地将多个查询结果合并到一起,并且可以去重或保留重复项。但是需要注意的是,多个SELECT语句需要满足查询列数一致和查询的每一列的类型和顺序一致。

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