SQL 2个查询结果合并到同一个结果

SQL 2个查询结果合并到同一个结果

SQL 2个查询结果合并到同一个结果

在实际工作中,有时候我们需要将两个查询的结果合并到同一个结果集中,以方便查看和分析数据。SQL提供了多种方法来实现这个需求,包括使用UNION、UNION ALL和INNER JOIN等方式。本文将详细介绍这些方法的用法,帮助读者更好地理解和应用。

使用UNION关键字合并查询结果

UNION关键字用于合并两个查询的结果集,并去除重复行。下面是一个示例,我们有两个查询,分别查询了不同的内容:

-- 查询1
SELECT name, age, gender
FROM table1
WHERE age > 20;

-- 查询2
SELECT name, age, gender
FROM table2
WHERE gender = 'male';

如果我们想将这两个查询的结果合并到同一个结果集中,可以使用UNION关键字:

SELECT name, age, gender
FROM table1
WHERE age > 20
UNION
SELECT name, age, gender
FROM table2
WHERE gender = 'male';

运行以上SQL语句后,将会得到两个查询结果的合并,并去除重复行。如果想要保留重复行,可以使用UNION ALL关键字。

使用UNION ALL关键字合并查询结果

UNION ALL关键字和UNION关键字类似,用于合并两个查询的结果集,但是不去重。下面是一个示例,我们有两个查询,分别查询了不同的内容:

-- 查询3
SELECT city, population
FROM table3
WHERE country = 'China';

-- 查询4
SELECT city, population
FROM table4
WHERE country = 'USA';

如果我们想将这两个查询的结果合并到同一个结果集中,并保留重复行,可以使用UNION ALL关键字:

SELECT city, population
FROM table3
WHERE country = 'China'
UNION ALL
SELECT city, population
FROM table4
WHERE country = 'USA';

运行以上SQL语句后,将会得到两个查询结果的合并,并保留重复行。

使用INNER JOIN关键字合并查询结果

除了使用UNION和UNION ALL关键字进行查询结果的合并外,我们还可以使用INNER JOIN关键字进行关联查询。下面是一个示例,我们有两个表,表A和表B,分别存储了不同的信息:

-- 表A
CREATE TABLE tableA (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

-- 表B
CREATE TABLE tableB (
    id INT PRIMARY KEY,
    gender VARCHAR(10),
    salary INT
);

如果我们想要将这两个表中的信息进行合并查询,可以使用INNER JOIN关键字:

SELECT tableA.name, tableA.age, tableB.gender, tableB.salary
FROM tableA
INNER JOIN tableB
ON tableA.id = tableB.id;

运行以上SQL语句后,将会得到表A和表B的信息合并的结果集,其中通过表A和表B的id进行关联。

总结

本文详细介绍了在SQL中如何将两个查询结果合并到同一个结果集中,包括使用UNION、UNION ALL和INNER JOIN等方法。读者可以根据具体的需求选择合适的方法,以达到最佳的查询效果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程