8
votes

Comment rejoindre deux tables si elles sont dans différents schémas

J'ai deux schemas différents dans SQL Server (disons S1, S2). Et deux tables dans ces schémas (dire S1.Table1, S2.Table2). Je veux interroger ces deux tables de Schema S1.

S1 et S2 sont dans les bases de données SQL Server 2005. Je veux faire quelque chose comme ceci: xxx


3 commentaires

Voulez-vous dire que vous souhaitez rejoindre deux tables de deux bases de données SQL différentes? ou deux serveurs différents?


Dupliqué possible de Query Deux tables de différents schema


Mes deux cents ... La virgule sur la troisième ligne devrait probablement être rejoindre.


3 Réponses :


7
votes

Utilisez 3 noms d'objet de la pièce pour spécifier la base de données: je suppose que vous voulez dire "la base de données" pas "schéma" (en disant le sens oracle) xxx

Notez la meilleure façon de faire des jointures. ..


2 commentaires

@Greg Randall: Clarté, moins de chances de faire la chance de faire de la place, de filtrer / rejoindre la séparation, sémantiquement correcte avec des jointures extérieures, ultérieure ANSI Standard (1992), déprécée * = = * = * = * = * = * = * = * = * = * = * = * = * = * = * = * = * = * = * = (Jointure externe-in-where) Syntaxe ... Stackoverflow.com/questions/5654278/...


Ouais la seule fois où je l'utilise est pour les jointures extérieures. Il n'y a pas de différence de performance, je trouve simplement qu'il est plus facile de lire dans l'ANSI 89, même s'il rend mon code plus sujet d'erreur.



2
votes

Vous n'avez pas mentionné si les DB étaient sur le même serveur. Si oui, vous pouvez suivre la réponse ci-dessus. Sinon, vous devrez créer un serveur lié l'un des serveurs, puis vous pouvez faire référence au serveur lié via


select T1.Id
  from [linkedservername].DB1.Schema.Table1 T1
     , S2.Table2 T2 
 Where T1.Id = T2.refId


0 commentaires

2
votes
Select T1.Id

FROM

s1.Table1 T1

JOIN

s2.Table2 T2

WHERE

T1.Id = T2.refId;
This is the way to do your query on MySQL. I would assume it also works in Oracle 11g.

0 commentaires