如何连接两个表中具有相同列名但行值不同的 SELECT 查询
How to Join two SELECT queries having same column names but different row values in both tables
我从 SELECT 查询 1 得到了一个 table 来自 SQL 服务器:
NUMBER
NAME
Date
21
Name1
20.03.2004
25
Name2
26.06.2005
23
Name3
26.06.2005
24
Name4
22.04.2012
我从 SELECT 查询 2 中得到了一个 table,如下来自 SQL 服务器:
NUMBER
NAME
Date
30
Name10
20.03.2064
30
Name10
26.06.2035
35
Name30
26.06.2025
36
Name40
22.04.2042
我想将这些 SELECT 查询合并为一个 SELECT 查询,如下所示:
NUMBER
NAME
Date
21
Name1
20.03.2004
25
Name2
26.06.2005
23
Name3
26.06.2005
24
Name4
22.04.2012
30
Name10
20.03.2064
30
Name10
26.06.2035
35
Name30
26.06.2025
36
Name40
22.04.2042
我这样试过:
SELECT * FROM ( SELECT Number,Name,Date FROM table1 ) t1
INNER JOIN ( SELECT Number, Name, Date FROM table2) t2
ON t1.number = t2.number
但是没用,这不是实际的table我想加入。
基本上我想加入两个 SELECT 具有相同列名但它们之间没有共同值的查询。
我想使用来自连接的 table.
的 SELECT 查询
提前致谢。
SELECT Number, Name, Date FROM table1
UNION ALL
SELECT Number, Name, Date FROM table2
UNION
和 UNION ALL
是 SQL 运算符,用于连接 2 个或更多结果集。这允许我们编写多个 SELECT
语句,检索所需的结果,然后将它们组合成一个最终的统一集。
UNION
和UNION ALL
的主要区别在于:
UNION:只保留唯一记录
UNION ALL: 保留所有记录,包括重复项
联合示例:
SELECT column1 AS datacheck from table1
UNION
SELECT column1 AS datacheck from table2
结果:
+-----------+
| datacheck |
+-----------+
| data2 |
+-----------+
联合所有示例:
SELECT column1 AS datacheck from table1
UNION ALL
SELECT column1 AS datacheck from table2
结果:
+-----------+
| datacheck |
+-----------+
| data2 |
| data2 |
+-----------+
我从 SELECT 查询 1 得到了一个 table 来自 SQL 服务器:
NUMBER | NAME | Date |
---|---|---|
21 | Name1 | 20.03.2004 |
25 | Name2 | 26.06.2005 |
23 | Name3 | 26.06.2005 |
24 | Name4 | 22.04.2012 |
我从 SELECT 查询 2 中得到了一个 table,如下来自 SQL 服务器:
NUMBER | NAME | Date |
---|---|---|
30 | Name10 | 20.03.2064 |
30 | Name10 | 26.06.2035 |
35 | Name30 | 26.06.2025 |
36 | Name40 | 22.04.2042 |
我想将这些 SELECT 查询合并为一个 SELECT 查询,如下所示:
NUMBER | NAME | Date |
---|---|---|
21 | Name1 | 20.03.2004 |
25 | Name2 | 26.06.2005 |
23 | Name3 | 26.06.2005 |
24 | Name4 | 22.04.2012 |
30 | Name10 | 20.03.2064 |
30 | Name10 | 26.06.2035 |
35 | Name30 | 26.06.2025 |
36 | Name40 | 22.04.2042 |
我这样试过:
SELECT * FROM ( SELECT Number,Name,Date FROM table1 ) t1
INNER JOIN ( SELECT Number, Name, Date FROM table2) t2
ON t1.number = t2.number
但是没用,这不是实际的table我想加入。
基本上我想加入两个 SELECT 具有相同列名但它们之间没有共同值的查询。 我想使用来自连接的 table.
的 SELECT 查询提前致谢。
SELECT Number, Name, Date FROM table1
UNION ALL
SELECT Number, Name, Date FROM table2
UNION
和 UNION ALL
是 SQL 运算符,用于连接 2 个或更多结果集。这允许我们编写多个 SELECT
语句,检索所需的结果,然后将它们组合成一个最终的统一集。
UNION
和UNION ALL
的主要区别在于:
UNION:只保留唯一记录
UNION ALL: 保留所有记录,包括重复项
联合示例:
SELECT column1 AS datacheck from table1
UNION
SELECT column1 AS datacheck from table2
结果:
+-----------+
| datacheck |
+-----------+
| data2 |
+-----------+
联合所有示例:
SELECT column1 AS datacheck from table1
UNION ALL
SELECT column1 AS datacheck from table2
结果:
+-----------+
| datacheck |
+-----------+
| data2 |
| data2 |
+-----------+