MySQL联合查询
数据查询是数据库最常用的功能之一,而联合查询是在多个表中同时查询数据的方式。MySQL提供了联合查询的功能,可以方便地从多个表中获取需要的数据。本文将介绍MySQL联合查询的基本概念、语法和示例。
一、什么是联合查询
联合查询(UNION)是一种在多个表中同时查询数据的方法。它将多个SELECT语句的结果合并成一个结果集,并去除重复的行。联合查询可以用于多个表的连接查询、数据合并以及数据比较等场景。
二、联合查询语法
MySQL的联合查询语法如下:
SELECT 列1, 列2, ... FROM 表1 WHERE 条件
UNION [ALL]
SELECT 列1, 列2, ... FROM 表2 WHERE 条件
[UNION [ALL] SELECT 列1, 列2, ... FROM 表3 WHERE 条件]
...
SELECT
语句:每个SELECT
语句都是一个查询,可以指定需要的列和条件;UNION
:用于合并多个查询结果集,去除重复的行;ALL
(可选):用于保留重复的行;FROM
:指定要查询的表;WHERE
(可选):指定查询条件。
三、联合查询示例
下面通过一个示例来说明如何使用联合查询。
假设有两个表:students
和teachers
,分别存储学生和教师的信息。students
表结构如下:
id | name | age | gender |
---|---|---|---|
1 | 张三 | 20 | 男 |
2 | 李四 | 22 | 男 |
3 | 王五 | 21 | 女 |
teachers
表结构如下:
id | name | age | gender |
---|---|---|---|
1 | 老师1 | 30 | 男 |
2 | 老师2 | 35 | 女 |
3 | 老师3 | 40 | 男 |
我们要查询学生和教师的姓名和性别,并合并到一个结果集中,可以使用以下SQL语句:
SELECT name, gender FROM students
UNION
SELECT name, gender FROM teachers;
执行以上SQL语句后,将得到以下结果:
name | gender |
---|---|
张三 | 男 |
李四 | 男 |
王五 | 女 |
老师1 | 男 |
老师2 | 女 |
老师3 | 男 |
如果希望保留重复的行,可以使用UNION ALL
:
SELECT name, gender FROM students
UNION ALL
SELECT name, gender FROM teachers;
执行以上SQL语句后,将得到以下结果:
name | gender |
---|---|
张三 | 男 |
李四 | 男 |
王五 | 女 |
老师1 | 男 |
老师2 | 女 |
老师3 | 男 |
四、总结
本文介绍了MySQL联合查询的基本概念、语法和示例。联合查询是在多个表中同时查询数据的一种方式,可以用于多个表的连接查询和数据合并等场景。通过使用联合查询,我们可以方便地从多个表中获取需要的数据。
以上就是MySQL联合查询的相关内容,希望对你有所帮助!
标签:name,UNION,gender,查询,联合,mysql,SELECT From: https://blog.51cto.com/u_16175439/6907002