2009-12-16 3 views
1

Disons que nous avons deux bases de données, l'une nommée db1, l'autre nommée db2. Les deux bases de données ont une table appelée Employees. Est-il possible de joindre les résultats des deux tables même si elles ont le même nom?Rejoindre les résultats de tables avec le même nom de différentes bases de données

Notez que les deux tableaux ne sont pas des noms de champs en conflit. Je sais que c'est stupide, mais nous avons dû créer une base de données d'extension à celle existante et pour rester simple, nous aimerions avoir le même nom de table dans les deux bases de données.

aide est grandement appréciée, merci

Je sais aussi il y a une question similaire de réponse ici, mais je ne trouve pas utile dans ce contexte.

+0

Quelle marque de base de données utilisez-vous? –

Répondre

1

Vous devriez être en mesure de se référer aux tableaux par leurs noms qualifiés. Si elles sont dans les différents schémas, vous pouvez dire:

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

Si elles sont des bases de données différentes en fait, vous auriez besoin d'un lien de base de données dans ce cas, il devient myTable1 @ Database1 etc.

+1

Merci beaucoup, je ne sais pas pourquoi j'ai essayé d'utiliser des jointures quand c'est si simple. Pouce en l'air mec! Merci à tous les autres qui ont aussi posté, mais je vais récompenser ce gars qui a posté en premier, c'est juste je crois. –

0

Vous devriez être en mesure de les référencer par database.owner.table, par exemple db1.dbo.Employees et db2.dbo.Employees (en supposant que les tableaux appartiennent à dbo)

+0

Oui, j'ai essayé mais la requête a échoué instantanément après avoir ajouté INNER JOIN db2.Employees ON db2.Employees.EmpId = db1.Employees.UUID Les données existent dans les deux tables de sorte que la jointure elle-même ne doit pas échouer, c'est pourquoi je pensais que était un problème avec l'utilisation du même nom de table. –

1

Oui vous pouvez certainement faire cela, vous aurez juste besoin de les alias à comme ceci:

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

Ensuite, vous pouvez obtenir ce dont vous avez besoin en référençant e1.MyColumn ou e2.MyOtherColumn.

-1

select * à partir de db1, db2 où db1.employee = db2.employee Est-ce que c'est ce que tu veux dire?

Questions connexes