2012-07-11 27 views
53

Possiamo utilizzare l'operazione di join per due tabelle da diversi database? Se sì, allora come fare?Possiamo usare join per due diverse tabelle di database?

Entrambi i database si trovano sullo stesso server e il DBMS è lo stesso.

+3

@vivekrai - In questo caso è sufficiente anteporre il tuo databasename nel selezionare clausola . Qualcosa come 'SELECT * FROM DBOne.dbo.Table1 AS t1 INNER JOIN DBTwo.dbo.Table2 t2 ON t2.ID = t1.ID' –

+15

Chiuso come" troppo localizzato "? Veramente ? Con 10 000 visualizzazioni? È pazzesco ! – JYL

+2

perché hai accettato quella risposta se non ha nulla a che fare con la tua domanda? – vivoconunxino

risposta

111

SQL Server consente di unire tabelle da diversi database purché tali database si trovino sullo stesso server. La sintassi del join è la stessa; l'unica differenza è che devi specificare completamente i nomi delle tabelle.

Supponiamo di avere due database sullo stesso server - Db1 e Db2. Db1 ha una tabella denominata Clients con una colonna ClientId e Db2 ha una tabella denominata Messages con una colonna ClientId (lasciamo il motivo per cui tali tabelle si trovano in database diversi).

Ora, per eseguire un join sulle tabelle di cui sopra si prevede di utilizzare questa query:

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

Semplice e utile .. ottima risposta – Vikram

+18

Questa dovrebbe essere la risposta accettata. – JYL

+9

Va notato che entrambi i database devono essere accessibili nello stesso contesto di sicurezza. In altre parole, se si accede con credenziali diverse per i due database, il precedente non funzionerà. In tal caso, probabilmente dovresti usare "Server collegati". –

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