Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 14h45   #1
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 175
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 175
Points : 28
Points : 28
Par défaut SELECT sur 2 bases de données différentes

Bonjour,

Mon problème est le suivant :

J'ai une base de donnée argentine et une autre bolivie, j'aimerai afficher le select d'une des tables communes.

BDD:argentine
TABLE:balcom_annuelle
CHAMPS: Date

BDD:bolivie
TABLE:balcom_annuelle
CHAMPS: Date

J'aimerai afficher dans une même requete les 2 dates des 2 pays.

Merci
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h07   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Si tes deux BDD sont sur le même serveur, pas de problème ! Le principe général est que tu préfixes les tables par leur BDD :
Code :
1
2
3
SELECT les_colonnes_souhaitees
FROM argentine.table1 t1
INNER JOIN bolivie.table2 t2 ON condition_de_jointure
Au passage, les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de lignes et de colonnes.
Et on évite d'employer des mots du langage SQL pour nommer ses tables et ses colonnes (ici : colonnes "date").
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h46   #3
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 175
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 175
Points : 28
Points : 28
Code :
1
2
3
SELECT balcom_annuelle.Date
FROM balcom_annuelle t1
INNER JOIN bolivie.table2 t2 ON balcom_anuelle.Date = balcom_anuelle.Date
Il me dit No database selected ?? je me place dans quelle base de données ?
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h51   #4
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 175
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 175
Points : 28
Points : 28
t2 et t1 correspond à quoi ?
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h56   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Il faut préciser les noms des deux bases de données ! Regarde bien mon exemple !

Citation:
t2 et t1 correspond à quoi ?
Ce sont des alias qu'il est fort conseillé d'utiliser pour éviter de répéter les noms des tables dans toute la requête, à plus forte raison ici puisqu'il faut y ajouter le nom de la BDD ! Ça facilite l'écriture et la lecture de la requête.

Quand tu dis ceci :
Citation:
J'aimerai afficher dans une même requete les 2 dates des 2 pays.
J'imagine que tu ne veux pas afficher que les dates les unes en dessous des autres ?

Quelle est la structure des tables ?
Quel est le besoin exact ?
Y a t-il une association entre les deux tables ? Si oui c'est sur la ou les colonnes correspondantes qu'il faut faire la condition de jointure, pas sur la date !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 16h08   #6
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 175
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 175
Points : 28
Points : 28
j'aimerai afficher ceci:

Bolivie_date Argentine_date
12/12/12 12/12/12
12/08/08 14/01/11
12/08/08 18/05/10


Dans ma table balcom_annuelle de ma BDD Bolivie j'ai qu'une colone Date
et exactement la meme chose dans ma BDD Argentine

J'ai besoin de joindre cote à cote les 2 dates des 2 pays différent pour comparer.

Et il y a aucune association entre les 2 tables je veux juste afficher 2 données les unes à coté des autre sur 2 bases de données avec une structure totalement identique.
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 16h37   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Et qu'est-ce qui fait qu'en face du 12/08/08 de la Bolivie on trouve 14/01/11 pour l'argentine ?

Si les deux tables n'ont pas de correspondance (un identifiant de balcom par exemple) et que tu fais une requête sur les deux tables sans jointure, il y aura un produit cartésien entre les deux tables et à chaque date de la Bolivie il y a aura toutes les dates de l'argentine et vice-versa.

Ou alors, si tu veux juste afficher les dates sans ordre ni correspondance, il faut faire une UNION de deux requêtes :
Code :
1
2
3
4
5
SELECT Bolivie_date, '' AS Argentine_date
FROM bolivie.balcom_annuelle
UNION
SELECT '', Argentine_date
FROM argentine.balcom_annuelle
Mais là tu auras plutôt ceci :
Bolivie_date / Argentine_date
'12/12/12' / ''
'12/08/08' / ''
'12/08/08' / ''
'' / '12/12/12'
'' / '14/01/11'
'' / '18/05/10'
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h20.


 
 
 
 
Partenaires

Hébergement Web