Home >Database >Mysql Tutorial >How Can I Join Tables Across Databases on Different Servers?

How Can I Join Tables Across Databases on Different Servers?

DDD
DDDOriginal
2025-01-13 09:51:42183browse

How Can I Join Tables Across Databases on Different Servers?

Join tables across different server databases

Integrating data from different server databases provides the possibility to perform comprehensive queries. To do this, you can consider the following strategies:

Use sp_addlinkedserver

Use sp_addlinkedserver to create a server link to establish a connection between two databases. Please refer to the relevant documentation to learn how to use it. Once the link is established, you can build the query as usual, prepending the database name with the linked server name, like this:

<code class="language-sql">SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID</code>

USE OPENQUERY

OPENQUERY allows you to execute SQL statements on a remote server and retrieve only the required data. This approach improves speed and allows the remote server to optimize queries. Caching data in a temporary table in the local database can facilitate subsequent queries, similar to connecting to a standard table.

For example:

<code class="language-sql">SELECT *
INTO #myTempTable
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]')
SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID</code>

Please refer to the documentation of OPENQUERY for more examples. While the example provided here is simpler, the first approach using sp_addlinkedserver may be more suitable. However, when filtering data is required, OPENQUERY can improve performance.

The above is the detailed content of How Can I Join Tables Across Databases on Different Servers?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn