Requête SQL sur deux BDD

Résolu/Fermé
Schiver Messages postés 20 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 24 février 2009 - 11 févr. 2009 à 14:44
 Olive - 25 juil. 2011 à 17:32
Bonjour,
je voulais savoir s'il était possible d'effectuer une requête SQL pour comparer deux bases de données (sous PhpMyAdmin) , ou pour faire des modifications de champs...

Je m'explique : j'ai deux bases de données, où certains attributs sont identiques (par exemple "désignation" dans les deux tables qui contient les mêmes données... enfin qui devrait!) et j'aimerais modifier les données de ma seconde base de données pour y insérer celles de ma première...

Y a-t-il un moyen de le faire par une requête SQL, ou par un autre moyen ?

D'avance merci,
Cordialement

Schiver
A voir également:

11 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
11 févr. 2009 à 14:49
Je pense que vous pouvez le faire en récupérant d'abord les données de la première base et les stockant dans une variable php puis en vous déconnectant de la base, vous reconnectant à l'autre base et en insérant les données de la variable.
0
Schiver Messages postés 20 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 24 février 2009
11 févr. 2009 à 15:03
Bonjour NookZ,

Effectivement, je pense que cette solution fonctionnerait, seulement je ne travaille que sur mes deux base de données (pour l'instant en local) et avec aucun fichier php...

Merci quand même de la proposition, mais j'aimerais savoir si c'est possible en SQL...??

Cordialement,

Schiver
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
11 févr. 2009 à 15:06
PhpMyAdmin utilise MySQL qui ne permet pas de requêtes utilisant plusieurs bases, désolée.
0
Schiver Messages postés 20 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 24 février 2009
11 févr. 2009 à 15:12
Aïe... dommage!

Bon je vais essayer avec un fichier php alors... ou avec un Excel ça doit être faisable je pense nan?!

Merci de l'aide en tous cas!!

Amicalement,

Schiver
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 08:26
Tu peux faire une seule requete et utiliser deux bases de données différentes ...
0
Schiver Messages postés 20 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 24 février 2009
12 févr. 2009 à 10:20
Ah bon?!

Peux-tu me dire comment faire s'il te plaît? Ça m'arrangerait bien de savoir...

Faut-il préfixer les noms de tables par les noms de base de données?

Merci d'avance,

Schiver
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 10:31
Exactement, il te faut tout prefixer ..

Bon un tit exemple...

Imagine que tu as deux bases:

Base_1
Base_2

Dans Base_1 tu as les tables :

Service_1 (Num_service, ....)
Intervention (Num_interventon, .... , #Num_agent, #Num_service)


Dans Base_2 tu as les tables :

Service_2 (Id_service, ....)
.......


Et immaginons que Id_service, et Num_service sont les memes numéros...

Tu peux faire une jointure en préfixant les noms..

SELECT * FROM Base_1.Service1 b1s, Base_2.Service_2 b2s, Base_1.intervention b1i
WHERE b2s.Id_service = b1s.Num_service
AND b1i.Num_service = b1i.Num_service
AND b1i.Num_agent =1;



Tas compris l'exemple ??

0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 10:31
Exactement, il te faut tout prefixer ..

Bon un tit exemple...

Imagine que tu as deux bases:

Base_1
Base_2

Dans Base_1 tu as les tables :

Service_1 (Num_service, ....)
Intervention (Num_interventon, .... , #Num_agent, #Num_service)


Dans Base_2 tu as les tables :

Service_2 (Id_service, ....)
.......


Et immaginons que Id_service, et Num_service sont les memes numéros...

Tu peux faire une jointure en préfixant les noms..

SELECT * FROM Base_1.Service1 b1s, Base_2.Service_2 b2s, Base_1.intervention b1i
WHERE b2s.Id_service = b1s.Num_service
AND b1i.Num_service = b1i.Num_service
AND b1i.Num_agent =1;



Tas compris l'exemple ??

0
Schiver Messages postés 20 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 24 février 2009
12 févr. 2009 à 10:47
Oui oui j'ai bien compris merci beaucoup je vais tester comme ça voir si ça fonctionne...

Un grand merci pour ton aide!!

Cordialement,

Schiver
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 10:55
De rien ..

^^ ..

Cordialement ..
0
Schiver Messages postés 20 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 24 février 2009
12 févr. 2009 à 11:06
ÇA MARCHE!!!!!!!!!!!!

haha!! victoire!!!!! :D

Merci beaucoup 974_Vin's_974!!!


Schiver
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 11:09
De rien ^^ ..

0
Bonjour,

Avec plus de 2 ans de retard, j'ai le même souci mais cela ne fonctionne pas chez moi !
J'ai 2 BdD placées dans le même répertoire (ex : D:\) nommées BdD1.sqlite et BdD2.sqlite (original je sais).
Dans BdD1 chez une table nommée Personne avec un Champ Id et un champ Nom.
Dans BdD2 chez une table nommée Etat avec un Champ IndexPersonne.

J'ai essayé de faire ceci :

SELECT * FROM BdD1.Personne mp,BdD2.Etat ke WHERE mp.Id=ke.IndexPersonne AND mp.Nom='NomPersonne'.

Cela ne fonctionne pas et m'indique le message :
[No such table: BdD1.Personne]

Que dois-je faire ?

Par avance merci

Olivier
0