2008-11-18 7 views
0

Est-il possible de faire une jointure de table croisée dans mysql s'étendant sur différentes tables? dans différentes bases de données.Jointure de table croisée à l'aide de MYSQL plutôt que MSSQL

Cela semble être facilement possible dans MSSQL, et accélère considérablement le transfert de données? En ce qui concerne mysql, avez-vous besoin d'un puissant IDE pour y parvenir? ou devez-vous écrire un programme pour faire quelque chose comme ça?

MISE À JOUR tbluser SET tblUser.ReceiveInfo = old_database.dbo.contact.third_party_info_yn DE tbluser jointure interne old_database.dbo.contact ON old_database.dbo.contact.id = tblUser.oldid

Répondre

3

Bien sûr, très facile . Préfixez le nom de la table avec le nom de la base de données, comme vous le montrez. Nous faisons régulièrement des jointures de bases de données croisées. Par exemple:

SELECT COUNT (*) FROM newusers1.users REJOIGNEZ newusers2.users

Il ne va certainement pas accélérer le transfert de données par rapport à avoir les deux tables de la même base de données, bien que. Maintenant, si vos tables sont installées sur des serveurs de bases de données différents, la réponse est non. Un exemple de ceci est si votre base de données est trop grande et vous avez besoin de partitionner vos tables. Les choses deviennent plus que désordonnées. Mais étant donné que vous semblez être satisfait de la solution MS SQL, cela ne semble pas s'appliquer ici.

1

Dans MySQL, vous pouvez faire des jointures de DB croisées et, par le biais du moteur FEDERATED, même des jointures de serveurs croisés.

0

MySQL ne se soucie pas vraiment si les tables sont dans la même « base de données », il est juste une collection logique de tables pour une administration commode, des permissions, etc.

Vous pouvez donc faire une jointure entre eux aussi facilement comme s'ils étaient dans le même (voir la réponse de ChrisInEdmonton)

Questions connexes