基本 UNION ALL 查询

CREATE TABLE HR_EMPLOYEES
(
    PersonID int,
    LastName VARCHAR(30),
    FirstName VARCHAR(30),
    Position VARCHAR(30)
);

CREATE TABLE FINANCE_EMPLOYEES
(
    PersonID INT,
    LastName VARCHAR(30),
    FirstName VARCHAR(30),
    Position VARCHAR(30)
);

假设我们想从我们的部门中提取所有 managers 的名称。

使用 UNION,我们可以从人力资源部门和财务部门获得所有员工,这些部门持有 position

SELECT 
    FirstName, LastName   
FROM 
    HR_EMPLOYEES  
WHERE 
    Position = 'manager'  
UNION ALL  
SELECT 
    FirstName, LastName  
FROM 
    FINANCE_EMPLOYEES  
WHERE 
    Position = 'manager'  

UNION 语句从查询结果中删除重复的行。由于人们可以在两个部门中拥有相同的姓名和职位,我们使用 UNION ALL,以便不删除重复项。

如果要为每个输出列使用别名,可以将它们放在第一个 select 语句中,如下所示:

SELECT 
    FirstName as 'First Name', LastName as 'Last Name'
FROM 
    HR_EMPLOYEES  
WHERE 
    Position = 'manager'  
UNION ALL  
SELECT 
    FirstName, LastName  
FROM 
    FINANCE_EMPLOYEES  
WHERE 
    Position = 'manager'