Sql server 从具有相同字段名称的3个表中获取结果

Sql server 从具有相同字段名称的3个表中获取结果,sql-server,Sql Server,我在SQL Server中有3个表: 表我的父母 ID Name Surname ID Name Surname 表MyCousins ID Name Surname ID Name Surname 表我的祖父母 ID Name Surname 我想问:有没有一种方法可以从所有3个表中获取“Name”和“姓氏”,并在一个查询中从哪个表中知道它们的来源 所以结果应该是 Name Surname Table ------

我在SQL Server中有3个表:

我的父母

ID   Name   Surname
ID   Name   Surname
MyCousins

ID   Name   Surname
ID   Name   Surname
我的祖父母

ID   Name   Surname
我想问:有没有一种方法可以从所有3个表中获取“Name”和“姓氏”,并在一个查询中从哪个表中知道它们的来源

所以结果应该是

Name         Surname        Table
-----------------------------------------
Giovanni     Rossi          MyParents
Rosanna      Blu            MyCousins
Seth         TheGreat       MyGrandParents

非常感谢您提供的任何帮助

您可以使用
UNION ALL
和表格的文字

SELECT name,
       surname,
       'MyParents' [table]
       FROM MyParents
UNION ALL
SELECT name,
       surname,
       'MyCousins' [table]
       FROM MyCousins
UNION ALL
SELECT name,
       surname,
       'MyGrandParents' [table]
       FROM MyGrandParents;

但请注意,您的设计可能是可以改进的。应该只有一个用于所有人员的表和一个存储他们之间关系的链接表。

您可以使用
UNION all
和一个用于该表的文本

SELECT name,
       surname,
       'MyParents' [table]
       FROM MyParents
UNION ALL
SELECT name,
       surname,
       'MyCousins' [table]
       FROM MyCousins
UNION ALL
SELECT name,
       surname,
       'MyGrandParents' [table]
       FROM MyGrandParents;

但请注意,您的设计可能是可以改进的。应该只有一张表供所有人使用,还有一张链接表存储他们之间的关系。

我知道,但是我想按照你说的那样制作的表太不一样了,它们之间没有真正的关系。但是你是大师,你这么快就解决了我,真的很感激。你好,我想问你一个问题。有没有其他方法来编写
'MyParents'
'mycusins'
'my祖父母'
?因为在ASP.NET中我得到一个空数据,而在SQL SERVER中它可以工作。我认为ASP.NET中的撇号没有按预期工作。@ChangeWorld:没有看到无法回答的.NET代码。也许可以打开一个新的问题,包括代码。我知道,但我想做的表格,正如你所说,是太不同了,他们没有真正的联系。但是你是大师,你这么快就解决了我,真的很感激。你好,我想问你一个问题。有没有其他方法来编写
'MyParents'
'mycusins'
'my祖父母'
?因为在ASP.NET中我得到一个空数据,而在SQL SERVER中它可以工作。我认为ASP.NET中的撇号没有按预期工作。@ChangeWorld:没有看到无法回答的.NET代码。可能会提出一个新问题,包括代码。