2024年10月05日 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。
假设我们有两个表格:students
和teachers
,存储了学生和教师的信息。我们想要检索出所有学生和教师的姓名,并将它们合并为一个结果集。可以使用联合查询实现这个需求:
SELECT name AS person_name, 'Student' AS type
FROM students
UNION
SELECT name AS person_name, 'Teacher' AS type
FROM teachers;
运行以上SQL语句将返回所有学生和教师的姓名,并且每行数据都会包含一个person_name
和type
字段,用于表示是学生还是教师。下面是一个示例输出:
person_name | type
-------------|--------
Alice | Student
Bob | Student
Charlie | Teacher
David | Teacher
有时候我们可能需要检索同一表中的不同列,并将它们合并为一个结果集。使用联合查询可以轻松实现这一目的:
SELECT name AS person_name, email AS contact_info
FROM students
UNION
SELECT name AS person_name, phone_number AS contact_info
FROM students;
假设我们想要检索出所有学生和教师的姓名,并附加每个人所在的部门。可以如下查询:
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/