AllForEver Posté 29 Mars 2006 Posté 29 Mars 2006 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. Qu'en pensez-vous ?
Anonymus Posté 29 Mars 2006 Posté 29 Mars 2006 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 Ca ne ressemblera plus à une jointure, mais l'idée est bien d'utiliser une table temporaire 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.
Spidetra Posté 30 Mars 2006 Posté 30 Mars 2006 (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.Champ2FROM 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é 30 Mars 2006 par anorci
NorSeb Posté 30 Mars 2006 Posté 30 Mars 2006 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 ?
Spidetra Posté 30 Mars 2006 Posté 30 Mars 2006 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.
Anonymus Posté 30 Mars 2006 Posté 30 Mars 2006 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
AllForEver Posté 3 Avril 2006 Auteur Posté 3 Avril 2006 Merci à vous pour vos réponses, je teste ça de mon côté.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant