我在数据库中有两个表。让我们称他们为“a”和“b”。我在这两个表中都有一个类似的字段,其中任何一个都不是主键,可用于将数据匹配在一起。
“a”和“b”都包含完全不同类型的数据。 “a”有5个字段,whislt“b”有8个字段。我正在使用SQL Server Express和localdb。
如何从两个表中获取所有字段,并对两个表中的类似字段进行匹配,然后将连接的数据放入新表或视图中?
以下是一些示例数据:
表格“a”
def log(fun):
def wrapper(*args):
print('in decorator!')
return fun(*args)
return wrapper
@log
def sum_(a,b):
return a+b
print sum_(1,2)
表格“b”
ID ClientID ClientName URL SoftwareID
1 12345 Example 1 www.testuri.com 017AAA93o45B
2 13579 Example 2 www.google.com 029AAA93k32D
3 29384 Example 3 www.stackoverflow.com 022AAA93j22T
“ClientID”字段是两者之间相似的字段。
答案 0 :(得分:1)
这将创建一个名为myNewTableName
的新表,其中包含两个表中每个clientId的数据。新创建的表的列数据类型将与原始列中的列相同。
SELECT [a].[ID] AS [aID]
, [a].[ClientID]
, [a].[ClientName]
, [a].[URL]
, [a].[SoftwareID]
, [b].[ID] AS [bID]
, [b].[Username]
, [b].[Email]
, [b].[Phone]
, [b].[Software]
INTO [myNewTableName]
FROM [a]
INNER JOIN [b]
ON [a].[ClientID] = [b].[ClientID]
如果您不想要包含此信息的永久表,因为它经常更改但希望能够一起查看和查询这些列,那么请尝试创建一个视图(这可能是您想要的而不是另一个表冗余数据)。
GO
CREATE VIEW [dbo].[vw_myViewName] AS
SELECT [a].[ID] AS [aID]
, [a].[ClientID]
, [a].[ClientName]
, [a].[URL]
, [a].[SoftwareID]
, [b].[ID] as [bID]
, [b].[Username]
, [b].[Email]
, [b].[Phone]
, [b].[Software]
FROM [a]
INNER JOIN [b]
ON [a].[ClientID] = [b].[ClientID]
GO
然后,您可以从视图中选择信息,就像使用任何普通表一样,但它会运行查询并显示结果。使用以下命令查询新视图:
SELECT *
FROM [dbo].[vw_myViewName]