我有两个SQL表,每个表都有一个代表名称的列... Name,FName。
我想以编程方式选择Table1中的所有名称和Table2中的所有名称,并将它们视为名为Name的一个列中的所有名称。
到目前为止我有这个,这不是我的预期。
SELECT
t1.FName AND t2.Name as Name
FROM
Table1 t1, Table2 t2
所以想象一下这个
答案 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
但是,如果t1
和t2
的记录相同并且您不希望它们合并,那么您可能希望使用:
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