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

问题描述:

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

两个数据库位于同一台服务器上,而DBMS相同。

+3

@vivekrai - 在这种情况下,所有你需要的是你的前添加在数据库名称SELECT子句。类似于'SELECT * FROM DBOne.dbo.Table1 AS t1 INNER JOIN DBTwo.dbo.Table2 t2 ON t2.ID = t1.ID' – 2012-07-11 06:49:44

+15

关闭为“过于本地化”?真的吗?有10 000个视图?这很疯狂 ! – JYL 2015-07-25 12:57:01

+2

为什么你接受这个答案如果与你的问题无关? – vivoconunxino 2016-11-29 09:45:58

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

假设您在同一台服务器上有两个数据库 - Db1Db2Db1有一个名为Clients的表,其列ClientIdDb2有一个名为Messages的表,列ClientId(让我们来看看为什么这些表位于不同的数据库中)。

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

select * 
from Db1.dbo.Clients c 
join Db2.dbo.Messages m on c.ClientId = m.ClientId 
+0

简单而有用..很好的答案 – Vikram 2015-06-20 13:40:32

+18

这应该是被接受的答案。 – JYL 2015-07-25 12:58:04

+9

也许应该指出,两个数据库必须在相同的安全上下文中可访问。换句话说,如果您使用两个数据库的不同凭据登录,则上述操作将无法工作。在这种情况下,您可能必须使用“链接服务器”。 – 2016-01-06 10:49:40

SELECT ... 
FROM A.table t1 
JOIN B.table2 t2 ON t2.column = t1.col