sql union联合查询

2024年10月05日 sql union联合查询 极客笔记

sql union联合查询

SQL中的联合查询(Union)是一种用于合并两个或多个SELECT语句结果集的方法,通常用于从多个表中检索数据并合并为一个结果集。在本文中,我们将详细讨论SQL联合查询的用法、语法和示例。

语法

SQL联合查询使用UNION关键字将多个SELECT语句合并为一个结果集。其基本语法如下:

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

在上面的语法中,我们首先使用SELECT语句检索第一个表的数据,然后使用UNION关键字指示SQL服务器将其结果与第二个SELECT语句的结果进行合并。请注意,UNION关键字将自动去除重复的行,如果想要包含重复的行,可以使用UNION ALL。

示例

假设我们有两个表格:studentsteachers,存储了学生和教师的信息。我们想要检索出所有学生和教师的姓名,并将它们合并为一个结果集。可以使用联合查询实现这个需求:

SELECT name AS person_name, 'Student' AS type
FROM students
UNION
SELECT name AS person_name, 'Teacher' AS type
FROM teachers;

运行以上SQL语句将返回所有学生和教师的姓名,并且每行数据都会包含一个person_nametype字段,用于表示是学生还是教师。下面是一个示例输出:

person_name  |  type
-------------|--------
Alice        |  Student
Bob          |  Student
Charlie      |  Teacher
David        |  Teacher

联合查询示例

1. 检索同一表中不同列的数据

有时候我们可能需要检索同一表中的不同列,并将它们合并为一个结果集。使用联合查询可以轻松实现这一目的:

SELECT name AS person_name, email AS contact_info
FROM students
UNION
SELECT name AS person_name, phone_number AS contact_info
FROM students;

2. 包含附加信息

假设我们想要检索出所有学生和教师的姓名,并附加每个人所在的部门。可以如下查询:

SELECT name AS person_name, 'Student' AS type, department
FROM students
UNION
SELECT name AS person_name, 'Teacher' AS type, department
FROM teachers;

总结

SQL联合查询是一种强大的方法,可以将多个查询结果合并为一个结果集。它在处理多表查询、不同列查询以及需要合并不同信息的场景下非常有用。通过合理使用UNION关键字,我们可以轻松实现多种复杂查询需求。

本文链接:http://so.lmcjl.com/news/14702/

展开阅读全文