2009-12-16 186 views
1

假设我们有两个数据库,一个名为db1,另一个名为db2。 这两个数据库都有一个名为Employees的表。无论如何,即使它们具有相同的名称,也要加入来自两个表格的结果?从不同数据库的同名表中加入结果

请注意,两个表没有冲突的字段名称。我知道这很愚蠢,但我们必须为现有的数据库创建一个扩展数据库,并保持简单,我们希望在两个数据库中都有相同的表名。

帮助是极大的赞赏,感谢

而且我知道有一个在这里回答过类似的问题,但我没有发现它在这方面的帮助。

+0

您使用的是什么品牌的数据库? – 2009-12-16 15:13:59

回答

1

您应该能够通过其完全限定的名称来引用表。如果他们在不同的模式,你可以说:

SELECT * FROM Schema1.MyTable as T1 JOIN Schema2.MyTable as T2 ON T1.Something = T2.SomethingElse 

如果他们实际上是不同的数据库,你需要在这种情况下,它成为MYTABLE1 @数据库1等数据库链接

+1

非常感谢,我不知道为什么我尝试使用连接时,它很简单。竖起大拇指!感谢所有贴出来的人,但我会把这个奖给这个先发布的人,这只是我认为的公平。 – 2009-12-16 15:15:48

0

您应该能够通过database.owner.table引用它们,例如, db1.dbo.Employees和db2.dbo.Employees(假设表属于dbo)

+0

是的,我试过了,但添加INNER JOIN db2.Employees后,查询失败立即db2.Employees.EmpId = db1.Employees.UUID 数据存在于两个表中,因此联接本身不应该失败,这就是为什么我认为它是使用相同表名的问题。 – 2009-12-16 15:12:59

1

是的,你绝对可以做到这一点,你只需要他们别名,像这样:

SELECT ... FROM [db1].[dbo].[Employees] as e1 INNER JOIN [db2].[dbo].[Employees] as e2 ON ... 

然后你可以通过参考e1.MyColumne2.MyOtherColumn得到你需要的东西。

-1

SELECT *从db1,db2 where db1.employee = db2.employee这是你的意思?

相关问题