-1

例如我有这个:

姓名

ID   | NAME
1    | Aiden
2    | Jackson
3    | Ethan

name_old

ID   | NAME
1    | Aiden
2    | Liam
3    | Mason
4    | Noah
5    | Ethan

我想得到:

结果

NAME
Aiden
Jackson
Ethan
Liam
Mason
Noah

我无法弄清楚什么查询可以完成这项工作。我猜想以某种方式合并而不是按结果分组?

4

4 回答 4

3

UNION将从两个部分获取结果并合并公共结果。

select NAME from name
UNION
select NAME from name_old;

SqlFiddle

于 2013-07-12T11:11:08.100 回答
1

尝试这个

声明@name table(id int identity(1,1),name varchar(50))
插入@name 选择“艾登”
插入@name 选择“杰克逊”
插入@name 选择'ethan'
插入@name 选择“斯蒂芬”

声明@name_old 表(id​​ int identity(1,1),name varchar(50))
插入@name_old 选择“艾登”
插入@name_old 选择“杰克逊”
插入@name_old 选择'ethan'
插入@name_old 选择“梅森”
插入@name_old 选择“诺亚”
插入@name_old 选择'ethan'

从中选择不同的 t.name
(
从@name 中选择名称
联盟
从@name_old 中选择名称
) 作为 t
于 2013-07-12T11:11:58.167 回答
0

使用右外连接

RIGHT JOIN 关键字返回右表 (table2) 中的所有行,以及左表 (table1) 中的匹配行。当没有匹配时,左侧的结果为 NULL。

SELECT NAME
 FROM name
 RIGHT JOIN name_old
 ON name.NAME=name_old.NAME;

http://www.w3schools.com/sql/sql_join_right.asp

于 2013-07-12T11:09:19.793 回答
0

你需要的是UNION

SELECT NAME FROM NAME
UNION
SELECT NAME FROM NAME_OLD

看到这个 SQLFiddle

于 2013-07-12T11:11:02.350 回答