Aller au contenu

Travailler avec plusieurs bases MySQL


Sujets conseillés

Posté

Je me pose une question... :)

J'ai créé 2 bases MySQL, est-il possible de faire des jointures entre des tables de ces 2 bases ?

Je n'ai aucun souci pour faire des jointures entre tables dans une même base ; mais là je m'interroge...

Avec Php, je fait mon mysql_select_db() mais je ne vois pas comment faire pour sélectionner et travailler avec plusieurs bases en même temps. :blink:

Qu'en pensez-vous ? :unsure:

Posté

A priori, on ne peut pas faire de jointure entre tables de bases différentes.

Tu peux ouvrir une base, prendre les résultats, et ouvrir la seconde base.

A priori pour ne pas prendre de risque il te faudra fermer la première base.

Pour solutionner ton problème, tu pourrais très bien :

- récupérer les résultats de la première base,

- récupérer les résultats de la seconde base,

- insérer le tout dans une table temporaire (dans une seule base)

et faire ta ... jointure sur cette table :D

Ca ne ressemblera plus à une jointure, mais l'idée est bien d'utiliser une table temporaire :D

D'ailleurs, quitte à créer une table temporaire, tu la créées sur la seconde base, et tu fais ta jointure entre la 2e table et la table temporaire ;)

Anonymus.

Posté (modifié)

Il est possible en mySQL de faire des requêtes multi-base.

Je te donne la syntaxe au niveau SQL, et pas au niveau PHP.

Tu peux être connecté soit à un serveur mySQL, soit à une base mySQL.

la syntaxe va être du type : schema.table.field

Ex : soit deux bases foo et bar

SELECT ft.Champ1, bt.Champ2
FROM foo.table1 ft INNER JOIN bar.table2 bt ON ft.PK = bt.FK
....

ça marche au moins en mySQL 5.0, en dessous il faut faire des tests

Modifié par anorci
Posté

Bonjour,

Tu peux être connecté soit à un serveur mySQL,  soit à une base mySQL.

Dans ce deuxièmecas, ne faut-il pas être connecté aux deux bases ?

Posté
Bonjour,

Dans ce deuxièmecas, ne faut-il pas être connecté aux deux bases ?

<{POST_SNAPBACK}>

Ma réponse se situé au niveau du serveur mySQL.

Au niveau communication php/mySQL, je sais pas, il faudrait tester.

J'aurai tendance à faire :

- connection au serveur

- requête multi-base

Les bases sont spécifiés dans la requête, c'est le serveur mySQL qui se charge des connection ( enfin il me semble ).

Il faudrait qu'un développeur php fasse les tests.

Posté
Ma réponse se situé au niveau du serveur mySQL.

Au niveau communication php/mySQL, je sais pas, il faudrait tester.

J'aurai tendance à faire :

- connection au serveur

- requête multi-base

Les bases sont spécifiés dans la requête, c'est le serveur mySQL qui se charge des connection ( enfin il me semble ).

Il faudrait qu'un développeur php fasse les tests.

<{POST_SNAPBACK}>

après essais, c'est possible, oui ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...