Requête SQL sur deux BDD [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009
-
 Olive -
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

11 réponses

Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
490
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.
Messages postés
20
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

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
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
490
PhpMyAdmin utilise MySQL qui ne permet pas de requêtes utilisant plusieurs bases, désolée.
Messages postés
20
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

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
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
Tu peux faire une seule requete et utiliser deux bases de données différentes ...
Messages postés
20
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

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
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
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 ??

Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
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 ??

Messages postés
20
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

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
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
De rien ..

^^ ..

Cordialement ..
Messages postés
20
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

ÇA MARCHE!!!!!!!!!!!!

haha!! victoire!!!!! :D

Merci beaucoup 974_Vin's_974!!!


Schiver
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
De rien ^^ ..

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