我们可以为两个不同的数据库表使用join吗?

Viv*_*Ray 87 sql database

我们可以对来自不同数据库的两个表使用join操作吗?如果是,那该怎么办?

两个数据库都在同一台服务器上,DBMS是相同的.

ReP*_*rre 165

只要这些数据库位于同一服务器上,SQL Server允许您连接来自不同数据库的表.连接语法是一样的; 唯一的区别是您必须完全指定表名.

假设您在同一台服务器上有两个数据库 - Db1Db2.Db1有一个Clients用列调用的表,ClientIdDb2有一个Messages用列调用的表ClientId(让我们留下来说明为什么这些表在不同的数据库中).

现在,要对上述表执行连接,您将使用此查询:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId
Run Code Online (Sandbox Code Playgroud)

  • 或许应该注意,两个数据库必须在相同的安全上下文中可访问.换句话说,如果您使用两个数据库的不同凭据登录,则上述操作将无效.在这种情况下,您可能必须使用"链接服务器". (12认同)

小智 5

您可以在数据库中使用 Synonyms 部分。

在此处输入图片说明

然后在同义词选项卡的查看向导中找到您保存的同义词并添加到查看和简单地设置内连接。 在此处输入图片说明