如何将表列数据合并到另一个表列数据SQL中

时间:2013-11-27 18:55:41

标签: sql sql-server merge union ms-access-2013

我有两个SQL表,每个表都有一个代表名称的列... Name,FName。

我想以编程方式选择Table1中的所有名称和Table2中的所有名称,并将它们视为名为Name的一个列中的所有名称。

到目前为止我有这个,这不是我的预期。

SELECT
    t1.FName AND t2.Name as Name
FROM 
    Table1 t1, Table2 t2

所以想象一下这个

enter image description here

2 个答案:

答案 0 :(得分:2)

在MySQL和SQL Server中:

SELECT CONCAT(t1.FName, ' ', t2.Name) AS FullName
FROM Table1 t1, Table2 t2

在MS Access中,您将执行以下操作:

SELECT t1.FName & ' ' & t2.Name AS FullName
FROM Table1 t1, Table2 t2

如果你想要在on字段中包含所有行,那么你真的需要GROUP_CONCAT函数。但是,Microsoft Access中没有GROUP_CONCAT。您可能必须使用一些VBA来完成此任务。请看一下:Concatenate records and GROUP BY in Access

<强> 编辑:

现在你的更新正在问一些完全不同的东西。如果您想获得上述结果,以下内容将为您提供没有任何重复的内容:

SELECT t1.FName AS [Name]
FROM Table1 AS t1
UNION
SELECT t2.Name as [Name]
FROM Table2 AS t2

但是,如果t1t2的记录相同并且您不希望它们合并,那么您可能希望使用:

SELECT t1.FName AS [Name]
FROM Table1 AS t1
UNION ALL
SELECT t2.Name as [Name]
FROM Table2 AS t2

答案 1 :(得分:1)

根据您添加到问题中的图像,您似乎需要来自这两个表的一列唯一名称而不涉及连接。您可以使用UNION查询来获取该信息。

SELECT
    t1.Name AS [Name]
FROM 
    Table1 AS t1
UNION
SELECT
    t2.FName as [Name]
FROM 
    Table2 AS t2